docs: private boolean increment(int index)
      {
          if (index == -1)
          {
              return false;
          }
          int value = current.get(index);
          if (value < max.get(index))
          {
              current.set(index, value+1);
              updateMinMax(index+1);
              return true;
          }
          boolean hasNext = increment(index-1);
          if (hasNext)
          {
              current.set(index, min.get(index));            
          }
          return hasNext;
      }