public ArrayList<String> letterCombinations(String digits) {
        ArrayList<String> result = new ArrayList<String>();
        result.add("");
        char[] cDigits = digits.toCharArray();
        for(Character c : cDigits){
            ArrayList<String> previous = new ArrayList<String>();
            previous.addAll(result);
            result = new ArrayList<String>();
            for(Character mapTo : mapper.get(c)){
                for(String s : previous){
                    result.add(s + mapTo);
                }
            }
        }
        return result;
    }