我有一个下面的python脚本
def id_generator(size=12, chars=string.ascii_lowercase + string.digits):
return ''.join(random.choice(chars) for _ in range(size))
我如何做才能生成它,直到它充满所有可能性而又没有输出相同的东西两次? 我需要12个随机字符a-z / 0-9,并且需要满足所有可能。谢谢
答案 0 :(得分:1)
如果您期望12位数字字符串的所有排列,请尝试一下
def id_generator(size=12, chars=string.ascii_lowercase + string.digits):
return ''.join(random.choice(chars) for _ in range(size))
from itertools import permutations
perms = [''.join(p) for p in permutations(id_generator())]
答案 1 :(得分:1)
如果要输出一串大小为字符的字符串,其中字符串内的每个字符都是唯一的(因此不再重复),则可以使用以下命令:
import random
import string
def id_generator(size=12, chars=string.ascii_lowercase + string.digits):
chars = list(chars)
random.shuffle(chars)
return ''.join(chars[:size])