如何获得每种可能的固定长度字符串组合

2024-09-29 20:26:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个字符串是xxYxx,其中x是字母a-z,Y是数字0-9。我如何得到所有可能的组合。例如:

aa1b ab2r xy9p

所有的可能性都是存在的


Tags: 字符串字母数字可能性xxyxxaa1bab2rxy9p
3条回答

这是一段伪代码,可以让您了解需要做什么

listOfStrings = [];
for x in [a ... z]
    for Y in [1 ... 10]
        string xYString = xxYxx;
        listOfStrings.append(xyString);
//listOfStrings now contains all desired combinations of xxYxx

这是你需要的某种正则表达式吗?还是阵列的生成器? 如果是正则表达式,我会做如下操作:

/^[a-z]{1,}([0-9]|10){1}[a-z]{1,}$/

Test in Regexr

否则,只需迭代所有值

使用^{}

import itertools
from string import ascii_lowercase as alphabet

def all_strings():
    numbers = map(str, range(1, 11))
    return map(''.join, itertools.product(alphabet, alphabet, numbers, alphabet))

例如:

>>> list(itertools.islice(all_strings(), 100))
['aa1a', 'aa1b', 'aa1c', 'aa1d', 'aa1e', 'aa1f', 'aa1g', 'aa1h', 'aa1i', 'aa1j',
 'aa1k', 'aa1l', 'aa1m', 'aa1n', 'aa1o', 'aa1p', 'aa1q', 'aa1r', 'aa1s', 'aa1t',
 'aa1u', 'aa1v', 'aa1w', 'aa1x', 'aa1y', 'aa1z', 'aa2a', 'aa2b', 'aa2c', 'aa2d',
 'aa2e', 'aa2f', 'aa2g', 'aa2h', 'aa2i', 'aa2j', 'aa2k', 'aa2l', 'aa2m', 'aa2n',
 'aa2o', 'aa2p', 'aa2q', 'aa2r', 'aa2s', 'aa2t', 'aa2u', 'aa2v', 'aa2w', 'aa2x',
 'aa2y', 'aa2z', 'aa3a', 'aa3b', 'aa3c', 'aa3d', 'aa3e', 'aa3f', 'aa3g', 'aa3h',
 'aa3i', 'aa3j', 'aa3k', 'aa3l', 'aa3m', 'aa3n', 'aa3o', 'aa3p', 'aa3q', 'aa3r',
 'aa3s', 'aa3t', 'aa3u', 'aa3v', 'aa3w', 'aa3x', 'aa3y', 'aa3z', 'aa4a', 'aa4b',
 'aa4c', 'aa4d', 'aa4e', 'aa4f', 'aa4g', 'aa4h', 'aa4i', 'aa4j', 'aa4k', 'aa4l',
 'aa4m', 'aa4n', 'aa4o', 'aa4p', 'aa4q', 'aa4r', 'aa4s', 'aa4t', 'aa4u', 'aa4v']

相关问题 更多 >

    热门问题