【发布时间】:2021-11-19 19:41:02
【问题描述】:
查找字符串的所有不同排列,其中仅允许排列某些索引。
例如string_perms('test_world', [2,3]) --> ['test_world', 'tets_world']
我有一个答案,但它看起来很脏。有没有更优雅的方法呢?
from itertools import permutations
def string_perms(s, indices):
final = []
target = [let for ind,let in enumerate(s) if ind in indices]
perms = list(set(permutations(target)))
temp = list(s)
for perm in perms:
for ind,let in enumerate(perm):
temp[indices[ind]] = let
final.append(''.join(temp))
return final
【问题讨论】:
标签: python string permutation itertools