Определить количество пятизначных чисел в девятеричной системе счисления

Определите количество пятизначных чисел, записанных в девятеричной системе счисления, которые не начинаются с нечётных цифр, не оканчиваются цифрами 1 или 8, а также содержат в своей записи не более одной цифры 3. Правильный ответ: 18944

Не могу найти ошибку в своем коде:

import itertools

l = list(itertools.product('012345678', repeat=5))
fin = []

for i in l:
    if (i[0] in '02468') and (i[-1] not in '18') and (i.count('3') <= 1):
        fin.append(i)

print(len(fin))

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

Автор решения: Qwertiy

А ведь можно и по формуле посчитать: tio.run

n = 9
l = 5

print(
  len("2468") # first digit
  * ( # numbers without digit 3 in the middle digits
      (n-1)**(l-2) ## X...Y - digits at ... if have no 3 in them
      * (n-2) # last digit: exclude 1 and 8, allow 3
    + # numbers with digit 3 in the middle digits
      (n-1)**(l-3) # save a slot for 3 in ... of X...Y
      * (l-2) # chose postion for a 3
      * (n-3) # last digit: exclude 1, 8 and 3
  )
)

Если убрать комментарии, то останется так: tio.run

n = 9
l = 5

print(len("2468") * ((n-1)**(l-2) * (n-2) + (n-1)**(l-3) * (l-2) * (n-3)))
→ Ссылка
Автор решения: Nikolas

Просто убрать в проверке первого числа ноль, число не может начинаться с нуля.

import itertools

l = list(itertools.product('012345678', repeat=5))
fin = []

for i in l:
    if (i[0] in '2468') and (i[-1] not in '18') and (i.count('3') <= 1):
        fin.append(i)

print(len(fin)
→ Ссылка