Liste des permutations d'un ensemble fini
Voici une traduction en Python de l'algorithme de Heap.
def heap(n,A):
if n == 1:
print A
else:
heap(n-1,A)
for i in range(0,n-1):
if n%2 == 0:
x = A[i]
A[i] = A[n-1]
A[n-1] = x
else:
x = A[0]
A[0] = A[n-1]
A[n-1] = x
heap(n-1,A)
heap(5,[1,2,3,4,5])