На питоне можно так:
Как-то вот обскьюрно, почему б не завести переменные
ya,yo,zh и т.п., разложить произведение сразу на цифры и т.п. Цикл у вас идет например по
a*b=1*999 хотя известно что

а эта проверка у вас в самом конце. Не знаю как работает логика в питоне, оно там все проверяет или слева направо и останавливается сразу как только стало понятно что выражение ложное?
Я к тому, что ежели потребуется проверить не

а например

то ваш код замучаешься править...