On Fri, Mar 19, 2010 at 10:17 AM, Joe Kington <jkington@wisc.edu> wrote:
See itertools.permutations (python standard library)

e.g.
In [3]: list(itertools.permutations([1,1,0,0]))
Out[3]: 
[(1, 1, 0, 0),
 (1, 1, 0, 0),
 (1, 0, 1, 0),
 (1, 0, 0, 1),
 (1, 0, 1, 0),
 (1, 0, 0, 1),
 (1, 1, 0, 0),
 (1, 1, 0, 0),
 (1, 0, 1, 0),
 (1, 0, 0, 1),
 (1, 0, 1, 0),
 (1, 0, 0, 1),
 (0, 1, 1, 0),
 (0, 1, 0, 1),
 (0, 1, 1, 0),
 (0, 1, 0, 1),
 (0, 0, 1, 1),
 (0, 0, 1, 1),
 (0, 1, 1, 0),
 (0, 1, 0, 1),
 (0, 1, 1, 0),
 (0, 1, 0, 1),                                                                                                                                                                                                                                     
 (0, 0, 1, 1),
 (0, 0, 1, 1)]

Hope that helps,
-Joe



If you use "set" you automatically eliminate replicates:

a = set(permutations([0,0,1,1]))

a
set([(0, 0, 1, 1),
     (0, 1, 0, 1),
     (0, 1, 1, 0),
     (1, 0, 0, 1),
     (1, 0, 1, 0),
     (1, 1, 0, 0)])

Converting back to a list:

b = list(a)
--
Gökhan