code: public List<Set<String>> makeNWiseTuples(String[] variables, int nWise) {
          List<Set<String>> completeTuples = new ArrayList<>();
          makeNWiseTuplesHelper(completeTuples, variables, 0, new HashSet<String>(), nWise);
  
          return completeTuples;
      }
docs: Produces all tuples of size n chosen from a list of variable names
  
  @param variables the list of variable names to make tuples of
  @param nWise     the size of the desired tuples
  @return all tuples of size nWise