using System.Text.RegularExpressions;
using System.Collections.Generic;
public static void Main()
var list = ThreeCharacterIncrementor("ZZZ34", 1000);
public static List<string> ThreeCharacterIncrementor(string lastIndice, int numberOfLabels)
var newSequence = new List<string>();
var regexPattern = "([A-Z]+)";
var regexResults = Regex.Split(lastIndice, regexPattern);
var characters = regexResults[1].ToString();
var numbers = Convert.ToInt32(regexResults[2]);
var charactersArray = characters.ToCharArray();
var firstCharacter = charactersArray[0];
var secondCharacter = charactersArray[1];
var thirdCharacter = charactersArray[2];
var newSecondChar = secondCharacter;
var newFirstChar = firstCharacter;
var thirdCharStartIndice = Convert.ToInt32(firstCharacter) - 65;
var secondCharStartIndice = Convert.ToInt32(secondCharacter) - 65;
var firstCharStartIndice = Convert.ToInt32(thirdCharacter) - 65;
for(int i = 1; i <= numberOfLabels; i++)
var thirdCharIndice = (i + thirdCharStartIndice) % 26;
var thirdCharAsciiValue = 65 + thirdCharIndice;
var newThirdChar = Convert.ToChar(thirdCharAsciiValue);
var secondCharIndice = (secondCharIndex + secondCharStartIndice) % 26;
var secondCharAsciiValue = 65 + secondCharIndice;
newSecondChar = Convert.ToChar(secondCharAsciiValue);
if(secondCharIndice == 0 && thirdCharIndice == 0)
var firstCharIndice = (firstCharIndex + firstCharStartIndice) % 26;
var firstCharAsciiValue = 65 + firstCharIndice;
newFirstChar = Convert.ToChar(firstCharAsciiValue);
newSequence.Add(newFirstChar.ToString() + newSecondChar.ToString() + newThirdChar.ToString() + numbers.ToString());