Permutations: Difference between revisions
Content added Content deleted
(→{{header|Haskell}}: better) |
(→{{header|Python}}: with destructive list updates) |
||
Line 5,058: | Line 5,058: | ||
(2, 0, 1) |
(2, 0, 1) |
||
(2, 1, 0)</lang> |
(2, 1, 0)</lang> |
||
=== Implementation using destructive list updates === |
|||
<lang python> |
|||
def permutations(xs): |
|||
ac = [[]] |
|||
for x in xs: |
|||
ac_new = [] |
|||
for ts in ac: |
|||
for n in range(0,ts.__len__()+1): |
|||
new_ts = ts[:] #(shallow) copy of ts |
|||
new_ts.insert(n,x) |
|||
ac_new.append(new_ts) |
|||
ac=ac_new |
|||
return ac |
|||
print(permutations([1,2,3,4])) |
|||
</lang> |
|||
=={{header|Qi}}== |
=={{header|Qi}}== |