• Source
    1. /* package whatever; // don't place package name! */
    2.  
    3. import java.util.*;
    4. import java.lang.*;
    5. import java.io.*;
    6.  
    7. /* Name of the class has to be "Main" only if the class is public. */
    8. class Ideone
    9. {
    10. public static void main (String[] args) throws java.lang.Exception
    11. {
    12. Ideone a = new Ideone();
    13. a.print(a.findCombos("123"));
    14. }
    15.  
    16. public ArrayList<ArrayList<Integer>> findCombos(String input)
    17. {
    18. ArrayList<ArrayList<Integer>> answer = new ArrayList<ArrayList<Integer>>();
    19. if(input.length()==1)
    20. {
    21. ArrayList<Integer> combo = new ArrayList<Integer>();
    22. answer.add(combo);
    23. combo.add(Integer.parseInt(input));
    24. return answer;
    25. }
    26. else
    27. {
    28. answer = findCombos(input.substring(1));
    29. int size = answer.size();
    30. for(int i=0;i<size;i++)
    31. {
    32. ArrayList<Integer> copy = new ArrayList<Integer>(answer.get(i));
    33. answer.add(copy);
    34. }
    35. int digit = (char)(input.charAt(0)-'0');
    36. for(int i=0;i<size;i++)
    37. answer.get(i).add(0, digit);
    38. for(int i=size;i<answer.size();i++)
    39. {
    40. String copy = "" + answer.get(i).get(0);
    41. int append = (int)(digit*Math.pow(10, copy.length()));
    42. answer.get(i).set(0, append+answer.get(i).get(0));
    43. }
    44. return answer;
    45. }
    46. }
    47.  
    48. public void print(ArrayList<ArrayList<Integer>> list)
    49. {
    50. for(int row = 0;row<list.size();row++)
    51. {
    52. for(int col =0;col<list.get(row).size();col++)
    53. System.out.print(" " + list.get(row).get(col));
    54. System.out.println();
    55. }
    56. }
    57. }