import java.util.*; class Ideone { public static List<String> generateAbbreviations(String prefix, String station, int length, List acc) { for (int i = 0; i < station.length(); i++) { String c1 = prefix.concat(Character.toString(station.charAt(i))); if(length > 1) { generateAbbreviations(c1, station.substring(i + 1), length - 1, acc); } else { acc.add(c1); } } return acc; } public static void main (String[] args) { String station = "KARLBERG"; List<String> ret = new ArrayList<>(); List<String> alternatives = generateAbbreviations("", station, 4, ret); System.out.println(alternatives); } }
Standard input is empty
[KARL, KARB, KARE, KARR, KARG, KALB, KALE, KALR, KALG, KABE, KABR, KABG, KAER, KAEG, KARG, KRLB, KRLE, KRLR, KRLG, KRBE, KRBR, KRBG, KRER, KREG, KRRG, KLBE, KLBR, KLBG, KLER, KLEG, KLRG, KBER, KBEG, KBRG, KERG, ARLB, ARLE, ARLR, ARLG, ARBE, ARBR, ARBG, ARER, AREG, ARRG, ALBE, ALBR, ALBG, ALER, ALEG, ALRG, ABER, ABEG, ABRG, AERG, RLBE, RLBR, RLBG, RLER, RLEG, RLRG, RBER, RBEG, RBRG, RERG, LBER, LBEG, LBRG, LERG, BERG]