Вы не можете добавить список, если последнее добавленное значение было таким же.
Вот лучший цикл while, который делает то, что вы хотите:
i = len(scramble)
while i < 25:
current_face = random.choice(moves)
if i == 0:
scramble.append(current_face)
elif scramble[i - 1] == current_face:
continue
else:
scramble.append(current_face)
i += 1
print(' '.join(scramble))
Этот цикл гарантирует, что список имеет фиксированную длину. Вы можете добавить свои модификаторы в этот список.
Но .. Если вы не женаты на концепции использования модификаторов, лучшее, что можно сделать ради случайности и простоты, - это использовать приведенный выше цикл с длинным списком со всеми возможными перестановками.
import random
def getscramble():
moves = ["R", "F", "U", "L", "B", "D",
"R'", "F'", "U'", "L'", "B'", "D'",
"R2", "F2", "U2", "L2", "B2", "D2"]
scramble = []
i = len(scramble)
while i < 25:
curent_face = random.choice(moves)
if i == 0:
scramble.append(curent_face)
elif (scramble[i - 1])[0] == curent_face[0]:
continue
else:
scramble.append(curent_face)
i += 1
print(' '.join(scramble))
getscramble()
Вывод вышеуказанного кода:
L' R D2 U L' U' F R2 L' U2 D' R' F' B2 F2 L2 R' D' L2 F' U2 F U2 R D