<gouthampradhan>backtracking_GenerateParentheses_1.java
private void backTrack(List<String> list, String str, int open, int close, int n) {
    if (str.length() == n * 2) {
      list.add(str);
    } else {
      if (open < n) backTrack(list, str.concat("("), open + 1, close, n);
      if (close
          < open) 
      backTrack(list, str.concat(")"), open, close + 1, n);
    }
  }
private void sample_funcname ( List < String > list , String str , int open , int close , int n ) {
  if ( str . length ( ) == n * 2 ) {
    list . add ( str ) ;
  }
  else {
    if ( open < n ) backTrack ( list , str . concat ( "(" ) , open + 1 , close , n ) ;
    if ( close < open ) backTrack ( list , str . concat ( ")" ) , open , close + 1 , n ) ;
  }
}
