L'algoritmo è abbastanza facile da ricavare, però sviluppandolo in python si possono sfruttare dei meccanismi di manipolazione delle liste peculiari del linguaggio.
Questo è un codice funzionante per ottenere le permutazioni (senza l'utilizzo della libreria itertools):
inputList = ["a", "b", "c", "d"]
def getPermutations(listToP):
permutations = []
if len(listToP) == 1:
return [listToP]
for i, el in enumerate(listToP):
remaining_el = listToP[:i] + listToP[i+1:]
subs = getPermutations(remaining_el)
for p in subs:
permutations.append([el] + p)
return permutations
print(getPermutations(inputList))Da notare che questa versione utilizza la ricorsione.
Nessun commento:
Posta un commento