def finde_maximum(stapel, start):
	m = start
	for n in range(m, len(stapel)):
		if stapel[n] > stapel[m]:
			m = n
	return m
	
def umdrehen(stapel, index):
	unten = stapel[:index]
	oben = list(reversed(stapel[index:]))
	print(f'{unten}{oben} <┘')
	return unten + oben
	
def wendungen(stapel):	
	print(stapel)
	wendungen = []
	for n in range(len(stapel)):
		m = finde_maximum(stapel, n)
		if m > n:
			stapel = umdrehen(stapel, m)
			stapel = umdrehen(stapel, n)
			wendungen += [m,n]
	print(stapel)		
	return wendungen

def main():
	stapel = [4,1,3,2]
	print('Wendepositionen:', wendungen(stapel))
	
	stapel = [4,2,3,1]
	print('Wendepositionen:', wendungen(stapel))	
	
if __name__ == '__main__':
	main()
