code: private HashMap<String, String[]>[][] expandedQueryVariables(
        HashMap<String, String[]>[] queryVariables) {
      HashMap<String, String[]>[][] subResult = new HashMap[queryVariables.length][];
      for (int q = 0; q < queryVariables.length; q++) {
        subResult[q] = expandedQueryVariables(queryVariables[q]);
      }
      ArrayList<HashMap<String, String[]>[]> result = new ArrayList<>();
      generatePermutations(result, 0, subResult);
      return result.toArray(new HashMap[result.size()][]);
    }
docs: Expanded query variables.
  
  @param queryVariables the query variables
  @return the hash map[][]