首页 > 解决方案 > 从给定字符串中删除 k 个字符后如何找到所有可能的字符串?

问题描述

例如,我们有一个字符串 s = "stackoverflow" 。如果我们删除一个字符,那么我们会得到 "tackoverflow"、"sackoverflow"、"stckoverflow" ......等等。当我们删除 k < len(s) 的 k 个字符时,如何获取所有可能的字符串。

对于给定的要删除的确切字符数和字符串,我们可以通过 for 循环来完成。但是当要删除的字符数不固定时该怎么做。

标签: pythonpython-3.xpython-3.5

解决方案


itertools是你的朋友:

from itertools import combinations

s = "stack overflow"
n_delete = 1

print([''.join(i) for i in combinations(s, len(s) - n_delete)])

推荐阅读