fork download
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);

	}
}
Success #stdin #stdout 0.06s 2841600KB
stdin
Standard input is empty
stdout
[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]