Explicación de una función de permutaciones
Publicado por Diego (1 intervención) el 25/07/2014 12:31:20
Hola amigos,
He encontrado en Internet una bonita función recursiva en python que genera todas las permutaciones de una lista, el problema es que no logro entender bien el modo en que funciona, si alguien lo pudiera explicar en estilo "para dummies" lo agradecería mucho.
http://www.codeskulptor.org/#user36_XmduOWEoY6_0.py
Resultado:
[[1, 2, 3], [1, 3, 2], [2, 1, 3], [2, 3, 1], [3, 1, 2], [3, 2, 1]]
He encontrado en Internet una bonita función recursiva en python que genera todas las permutaciones de una lista, el problema es que no logro entender bien el modo en que funciona, si alguien lo pudiera explicar en estilo "para dummies" lo agradecería mucho.
http://www.codeskulptor.org/#user36_XmduOWEoY6_0.py
1
2
3
4
5
6
7
8
9
def permu(xs):
if len(xs) <= 1:
yield xs
else:
for i in range(len(xs)):
for p in permu(xs[:i] + xs[i + 1:]):
yield [xs[i]] + p
print list(permu([1, 2, 3]))
Resultado:
[[1, 2, 3], [1, 3, 2], [2, 1, 3], [2, 3, 1], [3, 1, 2], [3, 2, 1]]
Valora esta pregunta


0