I know how to create random string, like:
''.join(secrets.choice(string.ascii_uppercase + string.digits) for _ in range(N))
However, there should be no duplicates so what I am currently just checking if the key already exists in a list, like shown in the following code:
import secrets
import string
import numpy as np
amount_of_keys = 40000
keys = []
for i in range(0,amount_of_keys):
N = np.random.randint(12,20)
n_key = ''.join(secrets.choice(string.ascii_uppercase + string.digits) for _ in range(N))
if not n_key in keys:
keys.append(n_key)
Which is okay for a small amount of keys like 40000
, however the problem does not scale well the more keys there are. So I am wondering if there is a faster way to get to the result for even more keys, like 999999
Aucun commentaire:
Enregistrer un commentaire