def clean_semver(cls, version_spec):
        return re.sub(r"([<>=~])\s+?v?", "\\1", version_spec, re.IGNORECASE)
def combinationSum(self, candidates, target):
        self.result = []
        self.dfs(candidates,0,target,[])
        return self.result