美しくない〜。
import java.util.*;
public class ShikiGenerator
{
  ArrayList list = new ArrayList();
  void generate(int a[], String str, int n)
  {
    for(int i = n; i <= a.length - 1; ++i)
    {
      String s = str + "+" + a[i];
      list.add(s);
      generate(a, s, i+1);
    }
  }
  void printList()
  {
    for(int i = 0; i < list.size(); ++i)
      System.out.println((i+1) + " : " + (String)list.get(i));
  }
  public static void main(String[] args)
  {
    int a[] = {1,2,5,4};
    ShikiGenerator sg = new ShikiGenerator();
    for(int i = 0; i < a.length; ++i)
      sg.generate(a, ""+a[i], i+1);
    sg.printList();
  }
}