Что нужно понимать
Маски чисел, делители и эффективный перебор кандидатов.
Одна цифра
В маске ? заменяет ровно одну произвольную цифру.
Любая строка
* может означать любую последовательность цифр, в том числе пустую.
Делимость
Проверка n % d == 0 фильтрует кратные d.
Не обязательно перебирать все числа до большого предела. Часто выгоднее генерировать только числа, подходящие под маску, и уже затем проверять делимость.