My friend has asked me a very interesting program. I would like to share that with you... (Not the very difficult problem though).
Problem: With a combination of five numbers 1, 2, 3, 4, 5 all the possible sequences in ascending order should be displayed. i.e.; (1, 1, 1, 1, 1), (1, 1, 1, 1, 2), and.... (5, 5, 5, 5, 5).
First we need to find out all the possible sequences availabe and then find out wheather they're in the ascending order.
`public class ArrayListSort{  public static void main(String args[])  {    int a[]={1,2,3,4,5};    int count = 0;    for(int x:a)    {      for(int y:a)      {        for(int z:a)        {          for(int p:a)          {            for(int q:a)            {              int arr[]={x, y, z, p, q};              if(isArrayInSortOrder(arr))              {                System.out.println("("+x+", "+y+", "+z+", "+p+", "+q+")");                count++;              }            }          }        }      }    }    System.out.println("Total number of combinatios: "+count);  }  public static boolean isArrayInSortOrder(int a[])  {    boolean valid = true;    for(int i=0;i<a.length;i++)    {      for(int j=i;j<a.length;j++)      {        if(a[i]>a[j])        {          valid = false;          break;        }      }    }    return valid;  }}`

## Output:

(1, 1, 1, 1, 1)
(1, 1, 1, 1, 2)
(1, 1, 1, 1, 3)
(1, 1, 1, 1, 4)
(1, 1, 1, 1, 5)
(1, 1, 1, 2, 2)
(1, 1, 1, 2, 3)
(1, 1, 1, 2, 4)
(1, 1, 1, 2, 5)
(1, 1, 1, 3, 3)
(1, 1, 1, 3, 4)
(1, 1, 1, 3, 5)
(1, 1, 1, 4, 4)
(1, 1, 1, 4, 5)
(1, 1, 1, 5, 5)
(1, 1, 2, 2, 2)
(1, 1, 2, 2, 3)
(1, 1, 2, 2, 4)
(1, 1, 2, 2, 5)
(1, 1, 2, 3, 3)
(1, 1, 2, 3, 4)
(1, 1, 2, 3, 5)
(1, 1, 2, 4, 4)
(1, 1, 2, 4, 5)
(1, 1, 2, 5, 5)
(1, 1, 3, 3, 3)
(1, 1, 3, 3, 4)
(1, 1, 3, 3, 5)
(1, 1, 3, 4, 4)
(1, 1, 3, 4, 5)
(1, 1, 3, 5, 5)
(1, 1, 4, 4, 4)
(1, 1, 4, 4, 5)
(1, 1, 4, 5, 5)
(1, 1, 5, 5, 5)
(1, 2, 2, 2, 2)
(1, 2, 2, 2, 3)
(1, 2, 2, 2, 4)
(1, 2, 2, 2, 5)
(1, 2, 2, 3, 3)
(1, 2, 2, 3, 4)
(1, 2, 2, 3, 5)
(1, 2, 2, 4, 4)
(1, 2, 2, 4, 5)
(1, 2, 2, 5, 5)
(1, 2, 3, 3, 3)
(1, 2, 3, 3, 4)
(1, 2, 3, 3, 5)
(1, 2, 3, 4, 4)
(1, 2, 3, 4, 5)
(1, 2, 3, 5, 5)
(1, 2, 4, 4, 4)
(1, 2, 4, 4, 5)
(1, 2, 4, 5, 5)
(1, 2, 5, 5, 5)
(1, 3, 3, 3, 3)
(1, 3, 3, 3, 4)
(1, 3, 3, 3, 5)
(1, 3, 3, 4, 4)
(1, 3, 3, 4, 5)
(1, 3, 3, 5, 5)
(1, 3, 4, 4, 4)
(1, 3, 4, 4, 5)
(1, 3, 4, 5, 5)
(1, 3, 5, 5, 5)
(1, 4, 4, 4, 4)
(1, 4, 4, 4, 5)
(1, 4, 4, 5, 5)
(1, 4, 5, 5, 5)
(1, 5, 5, 5, 5)
(2, 2, 2, 2, 2)
(2, 2, 2, 2, 3)
(2, 2, 2, 2, 4)
(2, 2, 2, 2, 5)
(2, 2, 2, 3, 3)
(2, 2, 2, 3, 4)
(2, 2, 2, 3, 5)
(2, 2, 2, 4, 4)
(2, 2, 2, 4, 5)
(2, 2, 2, 5, 5)
(2, 2, 3, 3, 3)
(2, 2, 3, 3, 4)
(2, 2, 3, 3, 5)
(2, 2, 3, 4, 4)
(2, 2, 3, 4, 5)
(2, 2, 3, 5, 5)
(2, 2, 4, 4, 4)
(2, 2, 4, 4, 5)
(2, 2, 4, 5, 5)
(2, 2, 5, 5, 5)
(2, 3, 3, 3, 3)
(2, 3, 3, 3, 4)
(2, 3, 3, 3, 5)
(2, 3, 3, 4, 4)
(2, 3, 3, 4, 5)
(2, 3, 3, 5, 5)
(2, 3, 4, 4, 4)
(2, 3, 4, 4, 5)
(2, 3, 4, 5, 5)
(2, 3, 5, 5, 5)
(2, 4, 4, 4, 4)
(2, 4, 4, 4, 5)
(2, 4, 4, 5, 5)
(2, 4, 5, 5, 5)
(2, 5, 5, 5, 5)
(3, 3, 3, 3, 3)
(3, 3, 3, 3, 4)
(3, 3, 3, 3, 5)
(3, 3, 3, 4, 4)
(3, 3, 3, 4, 5)
(3, 3, 3, 5, 5)
(3, 3, 4, 4, 4)
(3, 3, 4, 4, 5)
(3, 3, 4, 5, 5)
(3, 3, 5, 5, 5)
(3, 4, 4, 4, 4)
(3, 4, 4, 4, 5)
(3, 4, 4, 5, 5)
(3, 4, 5, 5, 5)
(3, 5, 5, 5, 5)
(4, 4, 4, 4, 4)
(4, 4, 4, 4, 5)
(4, 4, 4, 5, 5)
(4, 4, 5, 5, 5)
(4, 5, 5, 5, 5)
(5, 5, 5, 5, 5)
Total number of combinatios: 126

Above program has been tested in 1.5 and 1.6.