Pablo Torres <[EMAIL PROTECTED]> writes:
> def perm(seq):
>       "Reshuffles the elements of seq in every possible way"
>       if len(seq) == 1:
>               yield seq
>       else:
>               for p in perm(seq[1:]):
>                       for i in range(len(seq)):
>                               yield p.insert(i, seq[0])

It's easiest to avoid these mutating schemes and instead just generate
each permutation separately.

def perm(seq):
   if len(seq) == 0:
       yield []
   for (i,s) in enumerate(seq):
       for p in perm(seq[:i]+seq[i+1:]):
           yield [s]+p
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to