private string letterIncrement(string current)
{
if (current.Length == 1)
{
if (current[0] < 'Z')
{
current = ((char)(current[0] + 1)).ToString();
}
else
{
current = "AA";
}
}
else
{
char lastChar = current[current.Length - 1];
string prefix = current.Substring(0, current.Length - 1);
if (lastChar < 'Z')
{
current = prefix + ((char)(lastChar + 1)).ToString();
}
else
{
if (prefix.Length > 1 && prefix[prefix.Length - 1] == 'Z')
{
current = IncrementString(prefix) + "A";
}
else
{
current = prefix.Substring(0, prefix.Length - 1) +
((char)(prefix[prefix.Length - 1] + 1)).ToString() + "A";
}
}
}
return current;
}
private string IncrementString(string s)
{
if (s.Length == 1 && s[0] == 'Z')
{
return "AA";
}
char lastChar = s[s.Length - 1];
string prefix = s.Substring(0, s.Length - 1);
if (lastChar < 'Z')
{
return prefix + ((char)(lastChar + 1)).ToString();
}
else
{
return IncrementString(prefix) + "A";
}
}