Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- '''
- A permutation is an ordered arrangement of objects. For example, 3124 is one possible permutation of the digits 1, 2, 3 and 4.
- If all of the permutations are listed numerically or alphabetically, we call it lexicographic order. The lexicographic permutations of 0, 1 and 2 are:
- 012 021 102 120 201 210
- What is the millionth lexicographic permutation of the digits 0, 1, 2, 3, 4, 5, 6, 7, 8 and 9?
- '''
- def factorial(n):
- if n < 0 or n != int(n):
- return None
- if n == 0:
- return 1
- else:
- return n * factorial(n-1)
- from itertools import permutations
- N = 10
- targetIndex = 1000000
- perm = permutations(range(0, N))
- # Check condition
- if targetIndex > factorial(N):
- print("There is not such a permutation.")
- counter = 0
- for p in perm:
- # print(p)
- counter += 1
- if counter == targetIndex:
- print("The lexicographic permutation of a list from 0 to " + str(N-1) + " in index " + str(targetIndex) + " is: " + str(p))
- break
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement