随机绝不相同的12位数字的Python

时间:2018-08-08 12:53:10

标签: python

我有一个下面的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,并且需要满足所有可能。谢谢

2 个答案:

答案 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])