Python fornisce metodi diretti per trovare permutazioni e combinazioni di una sequenza. Questi metodi sono presenti nel pacchetto itertools.
Prima importa il pacchetto itertools per implementare il metodo delle permutazioni in python. Questo metodo prende una lista come input e restituisce un oggetto lista di tuple che contengono tutte le permutazioni in forma di lista.
from itertools import permutations    perm = permutations()    for i in list(perm):   print (i)  Output:
(1, 2, 3)(1, 3, 2)(2, 1, 3)(2, 3, 1)(3, 1, 2)(3, 2, 1)
Genera n! permutazioni se la lunghezza della sequenza di ingresso è n.
Se vuoi ottenere permutazioni di lunghezza L allora implementala in questo modo.
from itertools import permutations    perm = permutations(, 2)    for i in list(perm):   print (i)  Output:
(1, 2)(1, 3)(2, 1)(2, 3)(3, 1)(3, 2)
Genera nCr * r! permutazioni se la lunghezza della sequenza di input è n e il parametro di input è r.
Questo metodo prende una lista e un input r come input e restituisce un oggetto lista di tuple che contengono tutte le possibili combinazioni di lunghezza r in forma di lista.
from itertools import combinations    comb = combinations(, 2)    for i in list(comb):   print (i)  Output:
(1, 2)(1, 3)(2, 3)
- Le combinazioni sono emesse in ordine lessicografico di input. Quindi, se la lista di input è ordinata, le tuple di combinazione saranno prodotte in ordine ordinato.
fromitertoolsimportcombinationscomb=combinations(,2)foriinlist(comb):print(i)Uscita:
(2, 1)(2, 3)(1, 3)
 - Gli elementi sono trattati come unici in base alla loro posizione, non al loro valore. Quindi se gli elementi di input sono unici, non ci saranno valori ripetuti in ogni combinazione.
fromitertoolsimportcombinationscomb=combinations(,2)foriinlist(comb):print(i)Output:
(1, 1)(1, 3)(1, 3)
 - Se vogliamo fare la combinazione dello stesso elemento allo stesso elemento allora usiamo combinations_with_replacement.
fromitertoolsimportcombinations_with_replacementcomb=combinations_with_replacement(,2)foriinlist(comb):print(i)Output:
(1, 1)(1, 2)(1, 3)(2, 2)(2, 3)(3, 3)
 
Questo articolo è stato contribuito da Raju Varshney. Si prega di scrivere commenti se si trova qualcosa di sbagliato, o si desidera condividere ulteriori informazioni sull’argomento discusso sopra
 Articolo Tag : 
 Tag di pratica :