Во-первых, у тебя уехали циклы, начиная с о второй цифры. Они не внутри общего цикла.
Далее, ты можешь заменить 6 циклов на один, просто по числам от 0 до 999999.
for number in range(0, 1_000_000):
str_number = f'{number:0>6}' # превращаем число в строку, добивая нулями слева до 6 знаков
digits = list(map(int, str_number)) # каждый символ строки превращаем в отдельное число, т.е. цифру
d1, d2, d3, d4, d5, d6 = digits # распаковываем список цифр в отдельные переменные
Ещё ты можешь перебирать первые 5 цифр, а шестую цифру вычислять - сумма первых трёх минус четвёртая и минус пятая . Если результат в диапазоне 0-9, то это и будет шестая цифра.
Если же ты предпочтёшь перебирать 5 цифр отдельными циклами, то стоит делать иначе.
Первые 3 цифры перебираешь полным циклом, 4я цифра не должна превышать сумму первых 3х, 5я цифра не должна превышать сумму первых 3х - 4ю цифру. 6ю цифру вычислишь.
for d1 in range(10):
for d2 in range(10):
for d3 in range(10):
for d4 in range(min(9, d1+d2+d3) + 1):
for d5 in range(min(9, d1 + d2 + d3 - d4) + 1):
d6 = d1 + d2 + d3 - d4 - d5
if 0 <= d6 <= 9:
print(f'{d1}{d2}{d3}{d4}{d5}{d6}')
Аналогично, можно заметить, что не всегда имеет смысл перебирать 4-5 цифры с нуля. Пример: если первые три цифры 299, то четвёртая не может быть 0 или 1 - в этом случае оставшиеся две цифры должны будут дать в сумме 20 или 19, что невозможно. С учётом код изменится так:
for d1 in range(10):
for d2 in range(10):
for d3 in range(10):
min_d4 = max(0, d1 + d2 + d3 - 18)
max_d4 = min(9, d1 + d2 + d3)
for d4 in range(min_d4, max_d4 + 1):
min_d5 = max(0, d1 + d2 + d3 - d4 - 9)
max_d5 = min(9, d1 + d2 + d3 - d4)
for d5 in range(min_d5, max_d5 + 1):
d6 = d1 + d2 + d3 - d4 - d5
if 0 <= d6 <= 9:
print(f'{d1}{d2}{d3}{d4}{d5}{d6}')