Ich habe eine Methode, die 50.000 zufällige Zeichenfolgen generiert, speichern Sie sie alle in eine Datei, und durchlaufen Sie dann die Datei, und löschen Sie alle Duplikate der Zeichenfolgen, die auftreten. Von diesen 50.000 zufälligen Strings bleiben nach der Verwendung von set()
zur Erzeugung von eindeutigen Strings durchschnittlich 63 übrig.Generieren Sie eine Menge von zufälligen Zeichenfolgen
Funktion die Saiten erzeugen:
def random_strings(size=8, chars=string.ascii_uppercase + string.digits + string.ascii_lowercase):
return ''.join(random.choice(chars) for _ in xrange(size))
löschen Duplikate:
with open("dicts/temp_dict.txt", "a+") as data:
created = 0
while created != 50000:
string = random_strings()
data.write(string + "\n")
created += 1
sys.stdout.write("\rCreating password: {} out of 50000".format(created))
sys.stdout.flush()
print "\nRemoving duplicates.."
with open("dicts\\rainbow-dict.txt", "a+") as rewrite:
rewrite.writelines(set(data))
Beispiel vor und nach: https://gist.github.com/Ekultek/a760912b40cb32de5f5b3d2fc580b99f
Wie kann ich ohne Duplikate völlig zufällig eindeutige Zeichenfolgen generieren?
Benötigen Sie 2 Dateien oder möchten Sie nur 50000 eindeutige Zeichenfolgen? –
Was soll 'set (data)' tun? – thebjorn
@SimonBlack 50k einzigartige Stiche – Pyth0nicPenguin