Анализ лотереи. Сравнение двух списков через цикл while

В данный момент самостоятельно изучаю Python по книге Эрика Мэтиза - Изучаем Python (3 изд.) (2020). При решении задания № 9.15 (Лотерея: создайте список или кортеж, содержащий серию из 10 чисел и 5 букв. Случайным образом выберите 4 числа или буквы из списка. Анализ лотереи: напишите цикл, который проверяет, насколько сложно выиграть в смоделированной вами лотерее. Создайте список или кортеж с именем my_ticket. Напишите цикл, который продолжает генерировать комбинации до тех пор, пока не выпадет выигрышная комбинация. Выведите сообщение с информацией о том, сколько выполнений цикла понадобилось для получения выигрышной комбинации.) застрял на этапе сравнения двух списков, даже не написав счетчик для вывода сообщения, т.к. цикл вышел бесконечным. Что я сделал не так?

from random import choice
lottery = [5, 8, 2, 3, 6, 4, 9, 1, 7, 10, 'e', 'a', 'd', 'b', 'c']
winner = []
my_ticket = [5, 'c', 7, 'a']
active = True
while active:
    if winner != my_ticket:
        for result in range(1, 5):
            result = choice(lottery)
            winner.append(result)
    else:
        print('true')
        active = False

Ответы (1 шт):

Автор решения: GrAnd
from random import choices
lottery = [5, 8, 2, 3, 6, 4, 9, 1, 7, 10, 'e', 'a', 'd', 'b', 'c']
my_ticket = [5, 'c', 7, 'a']

count = 0
while True:
    winner = choices(lottery, k=4)
    count += 1
    if winner == my_ticket:
        break

print(count)
→ Ссылка