在 python 的字符串中找到所有可能的字母组合
find all possible combinations of letters in a string in python
我在python中有一个字符串,
我需要找到该字符串的任何子字符串(包括它本身)的所有可能方式
可以选择。子字符串(出于我的目的)在原始字符串中不必是连续的——它可以有间隙。
例如:"frogman"
是"froghuman'
的众多子串之一。
例如 would 函数:
如果我的字符串是"abcd"
,输出应该是:
[ "a", "b", "c", "d", "ab", "ac", "ad", "bc", "bd", "cd", "abc", "abd", "acd", "bcd", "abcd" ]
您的示例 input/output 表明您正在寻找 power set. You could generate a power set for a string using itertools
module in Python:
from itertools import chain, combinations
def powerset(iterable):
"powerset([1,2,3]) --> () (1,) (2,) (3,) (1,2) (1,3) (2,3) (1,2,3)"
s = list(iterable)
return chain.from_iterable(combinations(s, r) for r in range(len(s)+1))
print(list(map(''.join, powerset('abcd'))))
输出
['',
'a',
'b',
'c',
'd',
'ab',
'ac',
'ad',
'bc',
'bd',
'cd',
'abc',
'abd',
'acd',
'bcd',
'abcd']
注意:输出包含空字符串。
我在python中有一个字符串,
我需要找到该字符串的任何子字符串(包括它本身)的所有可能方式
可以选择。子字符串(出于我的目的)在原始字符串中不必是连续的——它可以有间隙。
例如:"frogman"
是"froghuman'
的众多子串之一。
例如 would 函数:
如果我的字符串是"abcd"
,输出应该是:
[ "a", "b", "c", "d", "ab", "ac", "ad", "bc", "bd", "cd", "abc", "abd", "acd", "bcd", "abcd" ]
您的示例 input/output 表明您正在寻找 power set. You could generate a power set for a string using itertools
module in Python:
from itertools import chain, combinations
def powerset(iterable):
"powerset([1,2,3]) --> () (1,) (2,) (3,) (1,2) (1,3) (2,3) (1,2,3)"
s = list(iterable)
return chain.from_iterable(combinations(s, r) for r in range(len(s)+1))
print(list(map(''.join, powerset('abcd'))))
输出
['',
'a',
'b',
'c',
'd',
'ab',
'ac',
'ad',
'bc',
'bd',
'cd',
'abc',
'abd',
'acd',
'bcd',
'abcd']
注意:输出包含空字符串。