使用输入掩码生成 pass_words

Generating pass_words with input mask

我有像 --- 这样的输入掩码词,我想用数字 (0-9)

替换所有 -

代码:

def masker(input_mask,pattern):
 s = list()
 s = (itertools.product(pattern,repeat=1))

 for i in input_mask:
  if ( i=='-'): 
   for j in s :
    print (input_mask.replace('-',''.join(j)))


masker ('-a-' , '123')

但我的输出是:

1a1
2a2
3a3
1a1
2a2
3a3

我的主要目标是这个输出:

1a1
1a2
1a3
2a1
....
....
3a3

在您的代码 j = '1' 中第一个 运行。然后你只需将所有 - 替换为...


我的建议是将 str.format 用作 mask(即将 - 替换为 {})。那么你可以这样做:

from itertools import product

def masker(input_mask, pattern):
    mask = input_mask.replace('-', '{}')  # mask = '{}a{}'
    for values in product(pattern, repeat=2):
        print(mask.format(*values))

masker(input_mask='-a-', pattern='123')

还要注意 product 中的 repeat=2。为了使其更通用,您需要使用 repeat=input_mask.count('-').