1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| def permutations(L):
#prend une liste L=[1,2,..,n] à n éléments
#renvoie une liste de n! listes correspondant à toutes les permutations de L
n=len(L)
if (n==1):
print("ici")
return([L])
else:
P=[]
for i in range(n-1):
Lcoupe=L[:i]+L[i+1:]#on enlève le i-ème éléments de L
print(Lcoupe)
Pcoupe=permutations[Lcoupe]#on prend les permutations de L tronquée
P+=[x+[i] for x in Pcoupe]#on prend les permutations précédentes
#auxquelles on rajoute i à la fin
""" le principe consiste par exemple sur L=[1,2,3,4,5,6] à faire toutes les
Lcoupe=[1,2,4,5,6] (ici en sucrant i=3)
on fait leur 5! permutations [1,2,4,5,6],[2,1,4,5,6] etc
et on leur rajoute 3 à la fin [1,2,4,5,6,3],[2,1,4,5,6,3]
et on recommence en remplaçant i=3 par i=4 etc.
"""
print(permutations([1]))#fonctionne
print(permutations([1,2]))#me renvoie l'erreur suivante : 'function' object is not subscriptable |
Partager