Published: March 5, 2024

Project Euler

Problem 24 - Lexicographic Permutations

Problem

This problem comes from Project Euler 24

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?

Solution and Code

# Project Euler: Problem 24
# Lexicographic permutations

from itertools import permutations

lex = list(permutations([0,1,2,3,4,5,6,7,8,9]))
answer = ''.join([str(i) for i in lex[999999]])
print(answer)
  • Line 6: Create a list of all the permutations for the numbers 0 to 10.
  • Line 7: This code is just here so that I can easily copy and paste from lex[999999]. It ironically took more time to write this code than to get the answer from print(lex[999999]). Work hard to be lazy 😤