Python mette a disposizione, tramite la libreria itertoolsdei metodi diretti per per ottenere permutazioni e combinazioni di una sequenza.

Permutazioni

Importiamo il package itertools per poter implementare il metodo interessato:

>>> from itertools import permutations

Effettuiamo la chiamata al metodo permutations(iterabile) passandogli come parametro una lista:

>>> permutazioni = list(permutations([4, 5, 2]))

Come possiamo notare permutations(iterabile) restituisce una lista di tuple contenenti tutte le permutazioni possibili:

Nota: se la lista passata in ingresso è ordinata, le tuple che avremmo in output saranno anch'esse ordinate.

>>> permutazioni
[(4, 5, 2), (4, 2, 5), (5, 4, 2), (5, 2, 4), (2, 4, 5), (2, 5, 4)]

In questo caso, non avendo specificato la lunghezza delle permutazioni che volevamo ottenere, abbiamo in output tutte le permutazioni di lunghezza pari alla lunghezza della lista.

Per specificare la lunghezza delle permutazioni ci basterà indicarlo al metodo permutations(iterabile, r=None) aggiungendo un secondo parametro:

>>> list(permutations([4, 5, 2], 2))
[(4, 5), (4, 2), (5, 4), (5, 2), (2, 4), (2, 5)]

Conclusione

Bene! Siamo giunti al termine...

Spero di esserti stato utile e se lo sono stato ti invito a condividere l'articolo sui social e a seguirmi su twitter e instagram, alla prossima!


Condividi sui Social