Note, i just whipped this up. I haven't tried it.
for (int i=0; i<40; ++i)
{
char digit = (char) (97 + i%26); // utf/ascii code 97 == 'a'
Console.WriteLine(new String(digit, i/26 + 1));
}
The String(char c, int n)
constructor gives you back a string with the char c repeated n times. From there, all you need is what to repeat ('a' for 0, 26, 52, etc), and how many times to repeat it (1 for 0, 2 for 26, 3 for 52, etc).
Also note, i
can be anything (well, any positive number). I just looped from 0 to 40 as you were doing. You don't have to work up to it or store intermediate results.