我有一个列表列表,我想复制itertools.product()多次不使用任何元素的效果.
>>> list = [['A', 'B'], ['C', 'D'], ['A', 'B']]
>>> [''.join(e) for e in itertools.product(*list)]
['ACA', 'ACB', 'ADA', 'ADB', 'BCA', 'BCB', 'BDA', 'BDB']
>>> # Desired output: ['ACB', 'ADB', 'BCA', 'BDA']
Run Code Online (Sandbox Code Playgroud)
我需要使用它的列表太大,无法计算itertools.product和删除不需要的元素.(250亿个排列itertools.product,而我想要的输出只有~500,000).优选地,答案是可迭代的.
编辑:我知道"产品"是我需要的错误术语,但我很难找到我正在寻找的词.
Edit2:这是我希望执行此操作的列表:
[['A', 'H', 'L'], ['X', 'B', 'I'], ['Q', 'C', 'V'], ['D', 'N'], ['E', 'F'], ['E', 'F'], ['G'], ['A', 'H', 'L'], ['X', 'B', 'I'], ['W', 'U', 'J', 'K', 'M'], ['W', 'U', 'J', 'K', 'M'], ['A', 'H', 'L'], ['W', 'U', 'J', 'K', …Run Code Online (Sandbox Code Playgroud) 我需要检查一个字符串是否包含一组字符,并且它们需要显示正确的次数.
string1 = "somestring"
string2 = "thestrings"
characters = "egimnorsst" # Note that there are two 's' characters here
does_string_contain(string1, characters) # True
does_string_contain(string2, characters) # False
Run Code Online (Sandbox Code Playgroud)