Java: obtenga todas las concatenaciones de Lista <Lista <String>>

tengo unList<List<String>> Necesito obtener una lista de todas las concatenaciones posibles en la primera dimensión

[ [1,2 ], [1] , [3,4] ]

debe dar:

[ 113, 114, 213, 214 ]

Estoy intentando con 2 bucles, como debería ser posible.

Esto es lo que he intentado:

private static List<String> constructIndexes(List<List<String>> indexList){
    List<String> index = new ArrayList<String>();

    String v="";

    for (int i=0; i< indexList.size(); i++){
        List<String> l =  indexList.get(i);
        for (int j=0; j<l.size(); j++){
            if (index.size()>0){
                for (int k=0; k<index.size(); k++){
                    index.set(k, index.get(k)+l.get(j));
                    // System.out.println(">");
                }
            } else {
                index.add(l.get(j));
            }

        }
    }

    return index;
}

algo de código de inicio:

List<List<String>> indexList = new ArrayList<List<String>>();

    List<String> l = new ArrayList<String>();
    l.add("1");
    l.add("2");
    indexList.add(l);
    l = new ArrayList<String>();
    l.add("1");
    indexList.add(l);
    l = new ArrayList<String>();
    l.add("3");
    l.add("4");
    indexList.add(l);

    System.out.println( constructIndexes(indexList));

Respuestas a la pregunta(3)

Su respuesta a la pregunta