def __str__(self):
        return "\n".join([str(x) for x in self])
def combinationSum(self, candidates, target):
        self.result = []
        self.dfs(candidates,0,target,[])
        return self.result