Here is a puzzle from the book Probability – A Beginner’s Guide To Permutations And Combinations: The Classic Equations, Better Explained – Scott Hartshorn
There are 5 people, each with a different height. They all stand in a straight line, and you stand directly in front of them looking at them.
How many different arrangements of those 5 people are possible that would have exactly 3 people visible to you?
There are 35 different arrangements.
# -*- coding: utf-8 -*- """ Created on Sun Jan 10 21:42:01 2021 @author: smpet """ #creates the permutations import itertools permutations = list(itertools.permutations([1, 2, 3, 4, 5])) #use below for testing specific tuples #permutations =  #permutations.append((4,1,2,3,5)) #permutations.append((1,2,3,4,5)) #print(permutations) my_list =  #Uncomment the print statements to follow the logic for my_tuple in permutations: i = 0 visible = 1 #initialize the largest value in the tuple to the first value largest_value = my_tuple #loop through each element of the tuple while i < len(my_tuple) - 1: if largest_value < my_tuple[i+1]: visible = visible + 1 largest_value = my_tuple[i+1] i = i + 1 if visible == 3: my_list.append(my_tuple) print(my_list) print('The number of different arrangements is', len(my_list))