Описание задачи
Сгенерировать все возможные варианты ключа по шаблону с маской ?.
Правило генерации
Вместо ? можно подставить букву, которая находится на расстоянии не более 2 позиций
в алфавите от соседей.
distance(a, b) = |ord(a) - ord(b)|- Если
?с краю — проверяем только одного соседа. - Если
?между двумя буквами — должен подходить к обеим.
Пример
Input
"a?c?"
Output
aaca
abca
acca
aacb
...
Первый ?: сосед слева 'a', справа 'c'.
Подходящие буквы для ?: 'a' (dist=0,2), 'b' (dist=1,1), 'c' (dist=2,0).