Python Puzzles
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[0]
#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))