#
# 
# @param n int整型 
# @return string字符串一维数组
#
class Solution:
    def generateParenthesis(self , n ):
        # write code here
        nums = ['' for i in range(2*n)]
        left,right = n,n
        res = []
        self.generate(nums,0,left,right,res)
        return res
    
    def generate(self,nums,i,left,right,res):
        if left==0 and right==0:
            res.append(''.join(nums))
            return
        if left<0 or right<0 or left>right:
            return
        nums[i] = '('
        self.generate(nums,i+1,left-1,right,res)
        nums[i] = ')'
        self.generate(nums,i+1,left,right-1,res)