Последовательный алгоритм генерации из списка Python

Мне нужен генератор, который из списка lettrs

rawlettrs = "01234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
lettrs = list(rawlettrs)

генерировал бы бесконечное количество своеобразных "кодов". Вот как должен выглядеть выход (запятые замените на переносы строк, в квадратных скобках мои пометки, которых не должно быть в генерации):

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, [Несколько миллисекунд спустя], Y, Z, a, b, [Еще мгновение...], z, 00, 01, 01, 03, 04, 05, 06, 07, 08, 09, 0A, [Еще пару миллисекунд спустя], 0z, 10, 11, 12, 13, [Пропустим некоторое время], zy, zz, 000, [И так до бесконечности]

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

Автор решения: Кирилл Малышев
from itertools import count, combinations_with_replacement

def gen():
    rawletters = "01234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
    for length in count(1):
        for res in combinations_with_replacement(rawletters, length):
            yield ''.join(res)
        
→ Ссылка
Автор решения: GrAnd
def weird_gen():
    rawlettrs = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
    for lettr in rawlettrs:
        yield lettr
    for prefix in weird_gen():
        for lettr in rawlettrs:
            yield prefix + lettr
→ Ссылка
Автор решения: TigerTV.ru

Вариант с product(по сути, переделка ответа @Кирилл Малышев)

from itertools import product, count

def gen():
    alphabet = "01234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
    for length in count(1):
        for res in product(alphabet, repeat=length):
            yield ''.join(res)
→ Ссылка