Generate Parentheses

Given n pairs of parentheses, write a function to generate all
combinations of well-formed parentheses.
For example, given n = 3, a solution se is:
"((()))", "(()())", "(())()", "()(())", "()()()"
Init ignore