Превышение объёма памяти в C#?
Если выводить в файл это единственное, что нужно делать с данными, то лучше генерировать их по необходимости. Так памяти много не понадобиться.public static IEnumerable<string> GetNumbersRange (int numberLength, int start, int end)
{
    string format = "D" + numberLength;
    for (int i = start; i < end; i++)
        yield return i.ToString(format);
}

public static IEnumerable<string> GetOperatorNumbers(IEnumerable<string> operators, IEnumerable<string> numbers, int countryCode)
{
    string Country = "";
    if (countryCode > 0)
    {
        Country = DATA.Code[countryCode].ToString();
    }

    foreach (var op in operators)
        foreach (var num in numbers)
            yield return Country + op + num;
}

File.AppendAllLines("file.txt", GetOperatorNumbers(...));
А какие действия подразумеваются над этими дофигачислами? Почему именно List, а не массивы например? 
Ну и вот это: https://msdn.microsoft.com/en-us/library/hh285054.aspx