Python随机产生大写字母和数字的字符串

时间:2022-06-01 18:17:22

简单产生随机字符串

如果不求随机字符串的安全性,可以简单实现如下:

''.join(random.choice(string.ascii_uppercase + string.digits) for _ in range(N))

Python 3.6使用random.choices():

''.join(random.choices(string.ascii_uppercase + string.digits, k=N))

安全产生随机字符串

如果对随机生成的字符串有安全性要求,可以使用random.SystemRandom():

''.join(random.SystemRandom().choice(string.ascii_uppercase + string.digits) for _ in range(N))

定义为函数

可以把它们定义为一个函数:

>>> import string
>>> import random
>>> def id_generator(size=6, chars=string.ascii_uppercase + string.digits):
... return ''.join(randomSystemRandom().choice(chars) for _ in range(size))
...
>>> id_generator()
'A5G74AF'
>>> id_generator(3, "8793PVIO")
'O9U'