全排列问题

  给定一个无重复数字的序列,返回这些数所能排列出的所有序列。

  方法一:

  首先求出所有可能出现在第一个位置的字符,即把第一个字符和后面所有字符进行交换(自己本身进行交换也是其中一种);

  然后把后面的字符继续分成两部分,将第一个字符与后面字符进行交换(包括字符本身),终止条件是:字符长度为1,无法进行交换。

 

  方法2:

  采用一个一个向中间集添加元素的方法,递归终止条件是传入的待递归的列表长度为1。

  此种方法的优点是无需交换,因此此种方法稍加改变就可以用于字符串的排列问题,因为在python中字符串属于不可变类型,如果字符按序输入的话,最终输出的排列也是按照字典序输出的。

 

  方法三:

  引入itertools库

 

 

  

posted @ 2018-07-14 17:24  [mumuyu]  阅读(121)  评论(0)    收藏  举报