public static void getDiKaEr() { List<List<String>> source = new ArrayList<>(); List<String> color = array. asList(" red ", "white "," blue "); A List < String > size = Arrays. AsList (" in ", "big", "small"); List<String> origins = arrays.aslist (" ", ""); source.add(color); source.add(size); source.add(origins); List<String> result = source.stream().reduce((a, b) -> { List<String> results = new ArrayList<>(); a.forEach(param1 -> { b.forEach(param2 -> { results.add(param1 + "-" + param2); }); }); return results; }).get(); System.out.println(result); }