code: @Nonnull
    @ReturnsMutableCopy
    public ICommonsSet <ICommonsList <DATATYPE>> getCombinations (@Nonnull final ICommonsList <DATATYPE> aElements)
    {
      ValueEnforcer.notNull (aElements, "Elements");
  
      final ICommonsSet <ICommonsList <DATATYPE>> aAllResults = new CommonsHashSet <> ();
      iterateAllCombinations (aElements, aAllResults::add);
      return aAllResults;
    }
docs: Generate all combinations without duplicates.
  
  @param aElements
  the elements to distribute to the specified slots (may be empty!)
  @return a set of slot allocations representing all possible combinations