Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses.
n = 3["((()))","(()())","(())()","()(())","()()()"]n = 1["()"]Two branching choices at each step: add '(' or ')'. Constraints open<n and close<open prune invalid paths, ensuring only valid parenthesizations are generated. No post-filtering needed — every leaf is valid. Result count equals Catalan number C(n).