generate parentheses, two methods(recurse & non-recurse)