def factorial(n): r = 1 for i in range(2,n+1): r*=i return r # Berechnet die n-te Permutation vom Array a (nummeriert von 0 bis n!-1) def num2perm(num, a): if len(a)==1: return a total = factorial(len(a)-1) first = num//total # Erste Stelle rest = num % total # Nummer der restlichen Permutation return [a[first]] + num2perm(rest, a[:first]+a[(first+1):]) def permutationen(n): a = list(range(n)) return [num2perm(j,a) for j in range(factorial(n))] print(permutationen(4))