class Solution:
    def generateParenthesis(self , n: int) -> List[str]:
        # write code here
        rs = []
        def go(l,r,temp):
            if l>n or r>n or r>l:
                return
            if l == n and r == n:
                rs.append(temp)
            else:
                go(l+1, r, temp+'(')
                go(l, r+1, temp+')')
        go(0,0,'')
        return rs