P:=method(a,r,if(a size<1,r join(" ")println,a foreach(v,P(a select(!=v),r clone push(v))))) P(list(0,1,2,3,4,5),list)