code: public List<Permutation> all() {
          final List<Permutation> permutations = new ArrayList<Permutation>();
          Backtracker counter = new Backtracker() {
  
              @Override
              public void applyTo(Permutation p) {
                  permutations.add(p);
              }
  
              @Override
              public boolean isFinished() {
                  return false;
              }
          };
          this.apply(counter);
          return permutations;
      }
docs: Generate the whole group from the compact list of permutations.
  
  @return a list of permutations