2013-03-01 65 views

回答

3

使用string.ascii_uppercase代替:

>>> import random 
>>> import string 
>>> 'RF' + ''.join(random.choice(string.ascii_uppercase) for i in xrange(6)) 
'RFOCJTGN' 

使用random.choice()将导致随机字符串,它可以有重复字符:

>>> 'RF' + ''.join(random.choice(string.ascii_uppercase) for i in xrange(6)) 
'RFBYBXHM' 

注意两个B个字符。如果你不想字符重复,然后使用random.sample()代替:

>>> 'RF' + ''.join(random.sample(string.ascii_uppercase, 6)) 
'RFEVKZHD' 

和6个随机字符,保证不包含重复。

+0

全线将前面: '代码= “RF” + '' 在x范围。加入(random.choice(string.ascii_uppercase),其中i(6 ))' – 2013-03-01 18:54:59

+1

@WestonOdom:更新。 – 2013-03-01 18:57:37

2

使用random.samplestring.ascii_uppercase

>>> "RF" + ''.join(random.sample(string.ascii_uppercase, 6)) 
'RFBGHZMW' 
+0

'random.sample()'将排除任何重复的字符。这一定是明确的选择! – 2013-03-01 19:02:10

0
>>> def getCode(length = 10, char = string.ascii_uppercase): 
     return ''.join(random.choice(char) for x in range(length)) 

>>> import random 
>>> import string 
>>> getCode(6) 
'ADKCGW' 

如果您希望其他字符和长度

>>> getCode(5, "mychars") 
'ahssh' 

codepade

编辑一个运行3210添加 “RE” 在随机字符

>>> "RE" + getCode(6) 
REIUXWUE