简单产生随机字符串
如果不求随机字符串的安全性,可以简单实现如下:
''.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'