Почему выполняется только последний вложенный цикл?
Классический Delphi style, на Python так не пишут. Вот как правильно:from itertools import product

let = 'ABEKMHOPCTXY'
num = '0123456789'

for item in product(let, *[num]*3, *[let]*2):
    print(''.join(item))
Определённо, потому что переменные-счётчики перед циклами не обновляешь.let = tuple('ABEKMHOPCTXY')
num = tuple('0123456789')

let1 = 0
num1 = 0
num2 = 0
num3 = 0
let2 = 0
let3 = 0

while let1 < 12:
    num1 = 0
    while num1 < 10:
        num2 = 0
        while num2 < 10:
            num3 = 0
            while num3 < 10:
                let2 = 0
                while let2 < 12:
                    let3 = 0
                    while let3 < 12:
                        print(let[let1], num[num1], num[num2], num[num3], let[let2], let[let3], sep='')
                        let3 += 1
                    let2 += 1
                num3 += 1
            num2 += 1
        num1 += 1
    let1 += 1
Последний цикл у тебя первый раз срабатывает, а во втором условие уже не True и больше ничего не печатается.
Не знаю как объяснить понятнее)
P.S. Это кстати номера машин ты генерируешь?)