该 目的 的random.sample()
是选择一个 子集 的输入序列的,随机,无需拾取任何一种元素多于一次。如果您的输入序列没有重复,则您的输出也不会重复。
您 不是 在寻找子集;您需要从输入序列中选择单个随机选择,并重复多次。元素可以多次使用。random.choice()
为此使用循环:
for i in range(y):
string = ''.join([random.choice(x) for _ in range(v)])
print string
这将创建一个length的字符串v
,其中from的字符x
可以多次使用。
快速演示:
>>> import string
>>> import random
>>> x = string.letters + string.digits + string.punctuation
>>> v = 20
>>> ''.join([random.choice(x) for _ in range(v)])
'Ms>V\\0Mf|W@R,#/.P~Rv'
>>> ''.join([random.choice(x) for _ in range(v)])
'TsPnvN&qlm#mBj-!~}3W'
>>> ''.join([random.choice(x) for _ in range(v)])
'{:dfE;VhR:=_~O*,QG<f'