2024-09-28 05:16:56 发布
网友
如何在python中创建一个置换生成器,但将更改限制为只有2个字母?你知道吗
示例:
create_perm('cow')
退货
['cwo', 'woc', 'ocw']
但不是'wco',因为这意味着三个字母改变了位置。你知道吗
'wco'
如果只允许更改两个字母,这可以归结为交换两个字母:
from itertools import combinations def changetwo(s): for i,j in combinations(range(len(s)), 2): res = list(s) res[i], res[j] = res[j], res[i] yield ''.join(res)
演示:
>>> list(changetwo('cow')) ['ocw', 'woc', 'cwo'] >>> for x in changetwo('1234'): ... x ... '2134' '3214' '4231' '1324' '1432' '1243'
如果只允许更改两个字母,这可以归结为交换两个字母:
演示:
相关问题 更多 >
编程相关推荐