How to generate all permutations of a string?
James Stroud
jstroud at ucla.edu
Thu Jun 22 13:56:44 EDT 2006
Girish Sahani wrote:
>>In article <mailman.7352.1150963651.27775.python-list at python.org>,
>> "Girish Sahani" <girish at cse.iitb.ac.in> wrote:
>>
>>
>>> I want to generate all permutations of a string.
>>
>>def permute(Seq) :
>> """generator which yields successive permutations of the elements
>> of Seq."""
>> if len(Seq) == 0 :
>> yield ()
>> else :
>> for i in range(0, len(Seq)) :
>> for rest in permute(Seq[:i] + Seq[i + 1:]) :
>> yield (Seq[i],) + rest
>> #end for
>> #end for
>> #end if
>>#end permute
>
> thanks lawrence...however this func doesnt return the permuted strings, so
> i added some code as follows to generate a list of all the permutations:
>
> def permute(seq):
> l = []
> if len(seq) == 0:
> yield []
> else:
> for i in range(0,len(seq)):
> for rest in permute(seq[:i] + seq[i+1:]):
> yield (seq[i],) + rest
> for t in permute(seq):
> l.append(''.join(t))
> return l
>
> This gives me a syntax error!
> I need to output a list that has all the permutations of the input string.
>
>
>
>
>>--
>>http://mail.python.org/mailman/listinfo/python-list
>>
>
>
p = ["".join(s) for s in permute('abcdefg')]
--
James Stroud
UCLA-DOE Institute for Genomics and Proteomics
Box 951570
Los Angeles, CA 90095
http://www.jamesstroud.com/
More information about the Python-list
mailing list