
- 递归的终止条件
- 字母遍历完
- 程序终止条件
- 每一个字母的递归走完
from typing import Listclass Solution:res = []def dfs(self, p, pb, level):if level == len(p) + 1:print(' '.join(self.res))returnfor i in range(len(p)):c = p[i]if pb[i] != True:self.res.append(c)pb[i] = True # 表示已经使用过了self.dfs(p, pb, level + 1)self.res.pop()pb[i] = Falsep = ['A', 'B', 'C']pb = [False, False, False]Solution().dfs(p, pb, 1)
结果:
A B C
A C B
B A C
B C A
C A B
C B A
