нужно поискать весь ли диапазон используется с каждым префиксом мобильного оператора. может например быть от 1000000 до 3000000 и следующие от 6000000 до 9999999 . если не полениться то размер словаря очень полезно уменьшится.
Далеко не весь диапазон после префикса используется. Как-то делал для Свердловской области и там диапазоны были 4-5 последних знаков, реже 6 (В инете есть данные по диапазоном для разных регионов) . В результате база по всем операторам получилась порядка 50 млн строк. И в ней все номера повторялись 4 раза - с первым символом +7, 7, 8 и без кода страны-межгорода. А по вышеописанным алгоритмам получил бы базу порядка 1 гб, которую надо перебирать несколько часов.