'''
解题思路:
全排列搜索 for i in range(len(num)), dfs(num[:i]+num[i+1:],res+[num[i]])
特别注意: dfs()函数的第一个参数,是排除当前字符的新数组
'''
# 
# @param num int整型一维数组 
# @return int整型二维数组
#
class Solution:
    def permute(self , num ):
        # write code here

        res = []
        out = []
        def dfs(num,res):
            if not num:
                if res not in out:
                    out.append(res)

            for i in range(len(num)):
                dfs(num[:i]+num[i+1:],res+[num[i]])

        dfs(num,res)
        #print(out)
        return out

#Solution().permute([1,2,3])    # [[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]