Incrementar uma string com letras?

Eu preciso incrementar uma string de .. digamosaaa parazzz e escreva cada incremento no console (incremento é mesmo uma palavra?). Seria algo como isto:

aaa
aab
aac
...
aaz

aba
abb
abc
...
abz

aca
acb

E assim por diante. Até agora, eu incrementei uma única letra fazendo o seguinte:

String.prototype.replaceAt = function(index, character) {
    return this.substr(0, index) + character + this.substr(index+character.length);
}

string = "aaa";

string = string.replaceAt(2, String.fromCharCode(string.charCodeAt(2) + 1));

//string == "aab"

No entanto, estou perdido quando se trata da carta finalz e deve incrementar a letra 2 (índice 1) e redefinir a última letra a sera.

Alguém tem ou conhece uma solução inteligente para isso? Obrigado!

questionAnswers(11)

yourAnswerToTheQuestion