code: protected static List<String> getKeysByRange(String prefix, String rangeStart, String rangeEnd, String suffix) {
      int rangeStartInt = Integer.parseInt(rangeStart);
      int rangeEndInt = Integer.parseInt(rangeEnd);
  
      String numberFormat;
      if (rangeStart.length() == rangeEnd.length()) {
        numberFormat = "%0" + rangeEnd.length() + "d";
      } else {
        numberFormat = "%d";
      }
  
      List<String> keys = new ArrayList<>();
      for (int i = rangeStartInt; i <= rangeEndInt; i++) {
        keys.add(prefix + String.format(numberFormat, i) + suffix);
      }
  
      return keys;
    }
docs: Automatically generate keys containing a numeric range. Autodetect padding necessity if
  {@code rangeStart} and {@code rangeEnd} have the same length
  
  @param prefix     part of key that comes before the numeric range
  @param rangeStart start of the numeric range; must be parsable as int
  @param rangeEnd   end of the numeric range; must be parsable as int
  @param suffix     part of the key that comes after the numeric range
  @return all generated keys