Generate all possible phone numbers with Python | Generates Crores of Phone Numbers within minutes.

Published on Oct. 20, 2020, 9:01 p.m.










Recently,  I learned about itertools in python. Especially, about the functions permutations, combinations, and products and I tried to make a script that generates all phone numbers in our country. I bet your phone number is too on the list.

let the hack begin!!!


First, you need to install itertools in your computer 


Simply open your terminal and type

            sudo apt-get install -y python-more-itertools


Then Write the code below

from itertools import product
file_name ="phonebook.txt"

phonebook = open(file_name,'a')
prefixes = ['+9471']

product_a = product(['1','2','3','4','5','6','7','8','9','0'],
['1','2','3','4','5','6','7','8','9','0'],
['1','2','3','4','5','6','7','8','9','0'],
['1','2','3','4','5','6','7','8','9','0'],
['1','2','3','4','5','6','7','8','9','0'],
['1','2','3','4','5','6','7','8','9','0'],
['1','2','3','4','5','6','7','8','9','0']
)


for prefix in prefixes:
for product_combined in product_a:
suffix = ''.join(product_combined)
phonebook.write(prefix+suffix+'\n')

phonebook.close()




Here prefixes list consists of the country code and service provider's code.
as an example the first item of my prefix list:

  '+94' is the country code and '71' is the service provider code you can customize this list as you want.

then I open a text file to write my output using the open() function.


PHILOSOPHY OF THE CODE


In the beginning, I imported the function product that returns all possible combinations and permutations as a list. 

then I started a for loop for pick a prefix and I start another for loop to join combination and prefix together and write it into our file

suffix = ''.join(product_combined)

Here product_combined is a tuple and we use the join() function to join the items in the tuple as a string

phonebook.write(prefix+suffix+'\n')

And this line to write our file line by line

That is all and you are all set to generate crores of phone numbers and a number will contain 12 characters if you do it like I did. But you can change them simply by changing the prefix-list and number of lists given as parameters to the product function.

As an example, if you give 7  lists as parameters you will have a combination of 7 characters.

WARNING
As too much data is manipulated your machine may be stuck. To avoid this I strongly recommend using only one item in prefix_list once.