在python中查找字符串中所有可能的字母组合
我有一个python字符串, 我需要找到所有可能的方法,包括字符串的任何子字符串本身 可以选择。就我而言,子字符串在原始字符串中不必是连续的,它可以有间隙。 根据这个定义,蛙人是“蛙人”的众多子串之一 例如,将要执行的功能: 如果我的字符串为abcd,则输出应为:在python中查找字符串中所有可能的字母组合,python,string,substring,Python,String,Substring,我有一个python字符串, 我需要找到所有可能的方法,包括字符串的任何子字符串本身 可以选择。就我而言,子字符串在原始字符串中不必是连续的,它可以有间隙。 根据这个定义,蛙人是“蛙人”的众多子串之一 例如,将要执行的功能: 如果我的字符串为abcd,则输出应为: ["a","b","c","d","ab","ac","ad","bc","bd","cd","abc","abd","acd","bcd","abcd"] 您的示例输入/输出表明您正在寻找一个。你可以: 输出 注意:输出包括空字符
["a","b","c","d","ab","ac","ad","bc","bd","cd","abc","abd","acd","bcd","abcd"]
您的示例输入/输出表明您正在寻找一个。你可以: 输出
注意:输出包括空字符串。提示:查看:listmap.join,powerset'abcd'@J.F.Sebastian我认为您的解决方案还包括'ac',因为选项可能是错误的。@user2539336:查看问题'ac'中的预期输出。正确的术语应该是subsequence,而不是substring。这个问题不太广泛。在Meta上也有讨论:
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']