I'm also a bit confused about what you want. I think one of the other replies may hold your solution, but have you forgotten the Perl "magic" string incrementer:
c:\@Work\Perl\monks>perl -wMstrict -le
"for my $s (qw(Y Z AA ZY ZZ AAA ZZY ZZZ AAAA)) {
my $t = $s;
printf qq{'$t' -> };
$t++;
print qq{'$t'};
}
"
'Y' -> 'Z'
'Z' -> 'AA'
'AA' -> 'AB'
'ZY' -> 'ZZ'
'ZZ' -> 'AAA'
'AAA' -> 'AAB'
'ZZY' -> 'ZZZ'
'ZZZ' -> 'AAAA'
'AAAA' -> 'AAAB'
If you already have string
'ABC', you can always go to the next step.
Give a man a fish: <%-{-{-{-<