这一题看着简单但是写起来一下子还找不到思路,看了下题解也无法一下子理解,大家的方法都比较抽象,花了很久才想出直观的解决该题的思路。 解决算法如下所示: 把第一个元素取出来,记作a; 递归解决剩下的list的全排列,得到结果为[[...],[...],...,]; 对于得到的结果进行遍历,然后将元素a插入到得到的结果的每一个位置; 举一个具体的例子来说明,对于list num=[1,2,3],首先取出第一个元素设为a=1,然后递归得到[2,3]的全排列为[[2,3],[3,2]],遍历[2,3]的全排列,比如第一个[2,3],把a插入到它的各个位置得到[1,2,3],[2,1,3],[2,3...