Repasando el archivo encontré este correo del lunes; no debe haberse reenviado a los correos personales (al menos a mi no me llegó) por problemas en la cabecera, viene sin remitente y sin asunto:

http://mail.python.org/pipermail/python-es/2010-May/024367.html

def all_perms(str):
if len(str) <=1:
yield str
else:
for perm in all_perms(str[1:]):
for i in range(len(perm)+1):
yield perm[:i] + str[0:1] + perm[i:]


for p in all_perms(['a','b','c']):
print p

['a', 'b', 'c']
['b', 'a', 'c']
['b', 'c', 'a']
['a', 'c', 'b']
['c', 'a', 'b']
['c', 'b', 'a']

ahora si quiero es permutar bits(0,1)

for p in all_perms(['0','1']):
...     print p
...
['0', '1']
['1', '0']

pero no deberia ser
['0', '1']
['1', '0']
['0', '0']
['1', '1']

Si el autor ve esto, que diga algo (si puede ser, con una cabecera From ;-)).

De momento la respuesta corta: la permutación está bien, lo que quieres es el producto cartesiano:

http://docs.python.org/library/itertools.html
_______________________________________________
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/

Reply via email to