我有以下清单:['a', 'b', 'c']
我正在寻找一种方法来生成所有可能的字符串,这些字符串包含以下限制:一个字符不能出现多次(aab,aba,abca等无效)
可以排除字符(ab有效,即使c不存在;a也有效,即使b和{}不存在)
我可以用
^{pr2}$
生成包含a、b和{}的所有字符串。不过我也得这么做[''.join(p) for p in permutations('ab')]
[''.join(p) for p in permutations('ac')]
[''.join(p) for p in permutations('bc')]
正如你可能知道的,如果最初的可用字符列表很长,我需要做很多工作。因此,我在Python中寻找一种优雅的方法来生成上述所有内容,只需输入允许的字符列表:def generate(vals=['a', 'b', 'c']):
# The initial list of allowed characters also has to be part of the
# final list since these also represent valid values
res = vals
# Generate all possible strings and store in res
return res
我需要这个,因为我想为我的web服务器的POST请求提供一个参数,其中一个参数(我们称之为val)可以采用不同的唯一值(单个字符或这些字符的组合),以便触发一些数据生成。可用值的列表将随着时间的推移而增长,因此我希望通过自动检查val的给定值是否有效,从而使处理请求更容易。在
我也一直在考虑迭代允许字符列表中的每个元素,并将其连接到其他元素(“a”、“ab”、“ac”、“abc”、“b”、“ba”、“bc”等等),但我不知道该怎么做。在