class Solution: # @param A : list of integers # @return a list of list of integers def subsets(self, A): if len(A) == 0: return [[]] h, t = A[0], A[1:] subsets_excluding_h = self.subsets(t) subsets_including_h = [sorted([h] + ss) for ss in subsets_excluding_h] return sorted(subsets_including_h + subsets_excluding_h) 1. Recursive method to find all subsets of a given list 2. Python 3 3. It's quite fast.