""" 全排列问题 给定一个不含重复数字的数组 返回所有可能的全排列, 可以按任意顺序返回结果。 """ def backtrack(numbers, result, begin): """ 使用回溯法生成数字的所有排列。 参数: numbers -- 待排列的数字列表 result -- 用于存储所有排列结果的列表 begin -- 当前处理的起始位置 """ length = len(numbers) if begin == length: result.append(numbers.copy()) for i in range(begin, length): numbers[begin], numbers[i] = numbers[i], numbers[begin] backtrack(numbers, result, begin + 1) numbers[begin], numbers[i] = numbers[i], numbers[begin] def permute(numbers): """ 生成给定数字列表的所有排列。 参数: numbers -- 待排列的数字列表 返回: 所有可能的排列列表 """ result = [] backtrack(numbers, result, 0) return result if __name__ == '__main__': numbers = [6, 7, 9] result = permute(numbers) print(result)
评论前必须登录!
注册