Python中字符串的限制排列

use*_*424 2 python permutation

如何在Python中执行以下操作?

鉴于两个字符串.打印两个字符串的所有交错.交错意味着if B在A之后,它也应该在交错字符串中的A之后.ex-AB和CD ABCD ACBD ACDB CABD CADB CDAB

Amb*_*ber 8

这实际上是树行走问题(即,是否沿着一个弦或另一个弦前进的决策树).通常,处理树行走问题的最简单方法是递归解决方案.


这是一个例子:

def ordered_permutations(str1, str2):
    perms = []
    if len(str1) + len(str2) == 1:
        return [str1 or str2]
    if str1:
        for item in ordered_permutations(str1[1:], str2):
            perms.append(str1[0] + item)
    if str2:
        for item in ordered_permutations(str1, str2[1:]):
            perms.append(str2[0] + item)
    return perms
Run Code Online (Sandbox Code Playgroud)