Перебирайте буквы от младших к старшим: a,k, d,b,z, e...
Проверяйте правильность суммы поциферно справа на-лево как можно раньше.
Т.е. после перебора a уже можно проверить, что (a+a+a) % 10 = a. Потом, после k надо проверить (ka+ka+ka)%100 = ka, после dbz можно проверить третью цифру.
Можно немного соптимизировтаь, есл ине считать (ка+ка+ка)%100, а помнить, какой там перенос из младшей цифры и проверять уже только (k+k+k+carry1)%10 = k, carry2 = (k+k+k+carry1)/10; Потом проверить, что (d+b+p + carry2)%10 = z и т.д.
В этом случае вы не будете перебирать откровенно лишнее, поэтому решение будет гораздо быстрее.
Следующее улучшение - не перебирать буквы s, z, e и r, а сразу считать, какими они должны быть, чтобы сумма сходилась. С s и z все тривиально, а для e и r надо чуть-чуть математики.
Это надо аккуратно выписать уравнения вида (e+a+e+carry2)%10=a.
Тут надо применить свойства модуля: 2e %10=-carry2 % 10, Тут для e есть 2 решения, если carry2 четно: (10-carry2)/2, (20-carry2) / 2
Но это улучшение не сильно ускорит.