All permutations of a list
Richard van de Stadt
stadt at cs.utwente.nl
Thu Oct 26 17:59:55 EDT 2000
More information about the Python-list mailing list
Thu Oct 26 17:59:55 EDT 2000
- Previous message (by thread): All permutations of a list
- Next message (by thread): All permutations of a list
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Rainer Deyke wrote: > > "Richard van de Stadt" <stadt at cs.utwente.nl> wrote in message > news:39F393B5.A978CC9D at cs.utwente.nl... > > Rainer Deyke wrote: > > > def ins(a, list): > > > return [list[:i] + [a] + list[i:] for i in range(len(list) + 1)] > > > > After having seen this, my colleague came up with this two-line solution, > > a version that doesn't need an ins-part: > > > > perms [] = [[]] > > perms xs = concat [ map (x:) (perms (xs--[x])) | x <- xs ] > > > > How would that be in Python? I guess it's about time I start > > downloading v2.0. [...] > > Here's my short Pythonic permutation function: > > def perms(list): > if list == []: > return [[]] > return [[list[i]] + p for i in range(len(list))\ > for p in perms(list[:i] + list[i+1:])] My collegue found another Miranda/Amanda solution, which looks similar (or is it _the_ equivalent?) perms [] = [[]] perms l = [ x:p | x <- l ; p <- perms (l--[x]) ] x <- l: x walks through all values of l for every x, p is set to all permutations of l_without_x x:p means x with p appended. Richard.
- Previous message (by thread): All permutations of a list
- Next message (by thread): All permutations of a list
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list