''' mbinary ######################################################################### # File : permute_divide_and_conquer.py # Author: mbinary # Mail: zhuheqin1@gmail.com # Blog: https://mbinary.xyz # Github: https://github.com/mbinary # Created Time: 2018-11-25 12:23 # Description: ######################################################################### ''' def permute(lst,n): ''' O(n!), optimal''' if n==1:print(lst) else: for i in range(n): lst[i],lst[n-1] = lst[n-1],lst[i] permute(lst,n-1) lst[i],lst[n-1] = lst[n-1],lst[i] if __name__=='__main__': n = 3 permute([i for i in range(n)],n)