python
class Solution:
def generateParenthesis(self, n: int):
track = []
res = []
def backtrack(left, right, track):
if right < left:
return
if left < 0 or right < 0:
return
if left == 0 and right == 0:
str = ''.join(track)
res.append(str)
return
track.append('(')
backtrack(left-1, right, track)
track.pop()
track.append(')')
backtrack(left, right-1, track)
track.pop()
backtrack(n, n, track)
return res