Since your request was "a program that stops when one list or another list is the same as a third list", I assume you are thinking of a while loop. Below is a full working code to move numbers around until one between tower2 and tower3 is the same as check1.
import numpy as np
tower1 = [3, 2, 1]
tower2 = [ ]
tower3 = [ ]
checkl = [3, 2, 1]
# keep looping until tower2 == check1 or tower3 == check1
while tower2 != checkl and tower3 != checkl:
print('tower2:', tower2, '; tower3:', tower3, '--> keep looping')
if tower2 != checkl and tower3 != checkl:
# move numbers around
tower2 = list(np.random.permutation([1, 2, 3]))
tower3 = list(np.random.permutation([1, 2, 3]))
else:
# stop the program
break
print('tower2:', tower2, '; tower3:', tower3, '--> done!')
Output:
tower2: [] ; tower3: [] --> keep looping
tower2: [1, 2, 3] ; tower3: [2, 1, 3] --> keep looping
tower2: [1, 3, 2] ; tower3: [2, 3, 1] --> keep looping
tower2: [2, 3, 1] ; tower3: [2, 3, 1] --> keep looping
tower2: [3, 2, 1] ; tower3: [3, 1, 2] --> done!