class Solution: def generateParenthesis(self, n: int) -> List[str]: def backtrack(opening, closing, curr, result): if opening == closing == n: result.append(curr) return if opening < n: backtrack(opening + 1, closing, curr + "(", result) if closing < opening: backtrack(opening, closing + 1, curr + ")", result) return result return backtrack(0, 0, "", []) Complexity Time: TODO Space: TODO