'''
解题思路:
组合搜索 for i in range(iStart,n), dfs(i+1,res+[num[i]]) 
'''
# 
# @param A int整型一维数组 
# @return int整型二维数组

class Solution:
    def subsets(self , A ):
        # write code here

        n = len(A)
        iStart = 0
        res = []
        out = []

        def dfs(iStart,res):
            out.append(res)
            for i in range(iStart,n):
                dfs(i+1,res+[A[i]])

        dfs(iStart,res)

        out = sorted(out,key=lambda x:len(x))
        #print(out) 

        return out

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