我试图使用python定义一个字符集,然后生成所有可能的字符串集。
我想首先将字符集设置为变量,然后使用for循环生成可能的字符串,如下所示:
charSet = [a-zA-Z0-9]
for a in charSet:
print (a)
for b in charSet:
print (b)
但我一直收到此错误消息 UnboundLocalError:赋值前引用的局部变量'a'
任何想法?
答案 0 :(得分:2)
没有类似于您要查找的内置语法,但是有一些预定义的字符串包含您需要的字母:
import string
charSet = string.ascii_letters + string.digits
对于更通用的解决方案,您可以尝试此功能:
def getCharactersFromCharSet(charSet):
import re
chars = []
for c in re.findall('.-.|.', charSet):
if len(c) == 1:
chars.append(c)
else:
for i in range(ord(c[0]), ord(c[2]) + 1):
chars.append(chr(i))
return ''.join(chars)
print getCharactersFromCharSet('a-zA-Z0-9')
答案 1 :(得分:2)
解决了charSet定义问题后,请查看itertools.product:
from itertools import product
import string
charSet = string.ascii_letters + string.digits
for wordchars in product(charSet, repeat=4):
print ''.join(wordchars)