激活码应用非常广泛,例如限时促销活动。激活码一般是由26个大写字母和10个数字任意组合而成,长度为12位或16位的居多。一个激活码里的字符是可以重复的,但是激活码是不能重复的。我们可以分别随机生成12个字符,然后组成一个字符串,放在字典中,通过字典再来判断是否有重复的激活码。以下代码是用Python生成20个10位的激活码。
#coding=utf-8
import random
import string
number = 20#激活码的数量
length = 12#激活码的长度
def made(): #生成激活码
activation_code = string.join(random.sample('ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456',length)).replace(" ","")
return activation_code
a = {1:made()}
def judge():#判断生成的激活码是否和字典中存在的激活码重复
new_made = made()
for k in a:
if a[k] != new_made:
return new_made
else:
judge()
for i in range(2,number+1):
a[i] = judge()
for j in a:
print '%4d'%(j),' ',a[j]
运行结果: