出力文字列のすべての配列の組合せ


文字列内のすべての文字が重複しないと仮定し、出力文字列のすべての組合せ再帰法:文字列を遍歴し、各文字は取得または取得できません.この文字がない場合は、結果文字に入れ、遍歴が完了したら、結果文字列を出力します.
入力文字列:abc
出力結果:a b c ab ac bc abc
public class Text2 {
	public static void main(String[] args) {
		String s="abc";
		char []c=s.toCharArray();
		StringBuffer sb = new StringBuffer("");
		int len=c.length;
		for(int i=1;i<=len;i++){
			CombineRecursiveImpl(c, 0, i, sb);
		}
	}
	
	public static void CombineRecursiveImpl(char []c,int begin,int len,StringBuffer sb){
		if(len==0){
			System.out.print(sb+" ");
			return ;
		}
		
		if(begin==c.length)		return;
		
		sb.append(c[begin]);
		CombineRecursiveImpl(c, begin+1, len-1, sb);
		sb.deleteCharAt(sb.length()-1);
		System.out.println(sb);
		CombineRecursiveImpl(c, begin+1, len, sb);
	}
}