Python Implementation of Problem 24

View source code here on GitHub!

Includes

Problem Solution

Project Euler Problem 24

This one was fairly easy for code golf

Problem:

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?

python.src.p0024.main() int
 1"""
 2Project Euler Problem 24
 3
 4This one was fairly easy for code golf
 5
 6Problem:
 7
 8A permutation is an ordered arrangement of objects. For example, 3124 is one
 9possible permutation of the digits 1, 2, 3 and 4. If all of the permutations
10are listed numerically or alphabetically, we call it lexicographic order. The
11lexicographic permutations of 0, 1 and 2 are:
12
13012   021   102   120   201   210
14
15What is the millionth lexicographic permutation of the digits 0, 1, 2, 3, 4,
165, 6, 7, 8 and 9?
17"""
18from itertools import permutations
19
20
21def main() -> int:
22    for idx, x in enumerate(permutations(range(10))):
23        if idx == 999999:
24            return int("".join(repr(i) for i in x))
25    return -1  # pragma: no cover

Tags: permutation, lexicographic-ordering, combinatorics