我正在嘗試撰寫一個遞回函式,該函式使用字串應具有的“A”和“B”元素數量的給定輸入生成所有二進制排列。例如 function(a, b) when a = 2 and b = 2 應該生成:
AABB
ABAB
ABBA
BAAB
BABA
BBAA
非常感謝您的幫助。謝謝!。
uj5u.com熱心網友回復:
基本情況是aorb為零的情況,因為如果您只有一個元素,則只有一個排列。從那里,遞回呼叫只需要從其中一個中減去一個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']
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/478705.html
