diff --git a/solutions/0024/euler_24.py b/solutions/0024/euler_24.py new file mode 100644 index 0000000..02640d0 --- /dev/null +++ b/solutions/0024/euler_24.py @@ -0,0 +1,29 @@ +""" +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? +""" + +from itertools import permutations + + +def ordered_permutations(n: int) -> list[int]: + digits = list(range(10)) + all_permutations = permutations(digits) + for _ in range(n - 1): + next(all_permutations) + return next(all_permutations) + + +def main(): + n = 1000000 + result = ordered_permutations(n) + print("".join(map(str, result))) + + +if __name__ == "__main__": + main()