comefrom: <awangdev>46. Permutations_4.java
code: public List<List<Integer>> permute(int[] nums) {
          List<List<Integer>> rst = new ArrayList<>();
          if (nums == null || nums.length == 0) return rst;
          rst.add(new ArrayList<>());
         
          for (int i = 0; i < nums.length; i++) { 
              int rstSize = rst.size();
              for (int j = 0; j < rstSize; j++) { 
                  List<Integer> baselist = rst.get(j);
                  for (int index = 0; index < baselist.size(); index++) {
                      baselist.add(index, nums[i]);
                      rst.add(new ArrayList<>(baselist)); 
                      baselist.remove(index);
                  }
                  baselist.add(nums[i]); 
              }
          }
          return rst;
      }
masked: public List < List < Integer >> var_2 ( int [ ] var_3 ) {
    List < List < Integer >> var_5 = new ArrayList < > ( ) ;
    if ( var_3 == null || var_3 . length == 0 ) return var_5 ;
    var_5 . add ( new ArrayList < > ( ) ) ;
    for ( int var_10 = 0 ;
    var_10 < var_3 . length ;
    var_10 ++ ) {
      int var_12 = var_5 . size ( ) ;
      for ( int var_13 = 0 ;
      var_13 < var_12 ;
      var_13 ++ ) {
        List < Integer > var_15 = var_5 . get ( var_13 ) ;
        for ( int var_16 = 0 ;
        var_16 < var_15 . size ( ) ;
        var_16 ++ ) {
          var_15 . add ( var_16 , var_3 [ var_10 ] ) ;
          var_5 . add ( new ArrayList < > ( var_15 ) ) ;
          var_15 . remove ( var_16 ) ;
        }
        var_15 . add ( var_3 [ var_10 ] ) ;
      }
    }
    return var_5 ;
  }
  