public void interpret(int arr[]){
        char t[][] = new char[arr.length][2];
        for(int i=0; i < arr.length; i++){
            for(int j=0; j < 2; j++){
                t[i][j] = '0';
            }
        }
        for(int l=1; l <=2; l++){
            for(int i=0; i <= arr.length -l ; i++){
                int j = i + l-1;
                t[i][l-1] = getRepresentation(i == j ? arr[i] : arr[i]*10 +arr[j]);
            }
        }
        List<Character> result = new ArrayList<Character>();
        interpret(arr.length,0,result,t);
    }
http://www.geeksforgeeks.org/find-all-possible-interpretations/
src/com/interview/recursion/InterpretationOfArray.java