打印所有可能的二进制排列的递归函数
Recursion Function that prints all possible binary permutations
我正在尝试编写一个递归函数,该函数使用字符串应具有的 'A' 和 'B' 元素数量的给定输入生成所有二进制排列。例如 function(a, b) 当 a = 2 和 b = 2 时应该生成:
AABB
ABAB
阿巴
巴布
巴巴
BBAA
感谢您的帮助。谢谢!
基本情况是 a
或 b
为零的情况,因为如果只有一个元素,则只有一个排列。从那里开始,递归调用只需要从 a
或 b
中减去一个,以确保它们最终都将达到零。
>>> def ab(a, b):
... if not a:
... return ["B" * b]
... if not b:
... return ["A" * a]
... return ["A" + p for p in ab(a - 1, b)] + ["B" + p for p in ab(a, b - 1)]
...
>>> ab(2, 2)
['AABB', 'ABAB', 'ABBA', 'BAAB', 'BABA', 'BBAA']
我正在尝试编写一个递归函数,该函数使用字符串应具有的 'A' 和 'B' 元素数量的给定输入生成所有二进制排列。例如 function(a, b) 当 a = 2 和 b = 2 时应该生成:
AABB
ABAB
阿巴
巴布
巴巴
BBAA
感谢您的帮助。谢谢!
基本情况是 a
或 b
为零的情况,因为如果只有一个元素,则只有一个排列。从那里开始,递归调用只需要从 a
或 b
中减去一个,以确保它们最终都将达到零。
>>> def ab(a, b):
... if not a:
... return ["B" * b]
... if not b:
... return ["A" * a]
... return ["A" + p for p in ab(a - 1, b)] + ["B" + p for p in ab(a, b - 1)]
...
>>> ab(2, 2)
['AABB', 'ABAB', 'ABBA', 'BAAB', 'BABA', 'BBAA']