Условие:
Перестановка — это упорядоченная выборка объектов. К примеру, 3124 является одной из возможных перестановок из цифр 1, 2, 3 и 4. Если все перестановки приведены в порядке возрастания или алфавитном порядке, то такой порядок будем называть словарным. Словарные перестановки из цифр 0, 1 и 2 представлены ниже:
012 021 102 120 201 210
Какова миллионная словарная перестановка из цифр 0, 1, 2, 3, 4, 5, 6, 7, 8 и 9?
Решение:
import itertools, sys # We initialize a list as the lowest permutation of the given digits, which is the sequence # (0,1,2,3,4,5,6,7,8,9). Then we call a Python library function that generates a stream of # all permutations of the values, seek to the 999 999th element (0-based indexing), and stringify it. def compute(): arr = list(range(10)) temp = itertools.islice(itertools.permutations(arr), 999999, None) return "".join(str(x) for x in next(temp)) if __name__ == "__main__": print(compute())