Опишите функцию получения следующего значения после предыдущего (функция инкремента строки).
Для этого нужно просто заменить последний разряд на следующее его значение, а если строка пустая, то вернуть "а".
Если произошло переполнение, то выполняем функцию инкремента к строке без последнего символа, и результат конкатенируем с "а".
Такому алгоритму не нужно памяти сверх необходимого для хранения одной последовательности, плюс небольшая константа для переменных. В общем, инкрементация в среднем за O(log_M(N)), где M - размер алфавита, а N - число знаков.
У вас, кстати, еще ошибка:
То есть в диапазон должно входить 3^2=9 значений,
3^2+3^1