Python - Explicación de una función de permutaciones

 
Vista:

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

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
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder