求帮忙,java中关于数组的组合

String arrs={'D','S-X','D','S','C-Z','P'}
数组里的是“大厦的收藏品”的首字母,因为厦和藏都是多音字,现在要求把所有的首字母组合输出
如:DSDSCP DXDSZP DXDSCP DSDSZP,一时想不到实现方法
希望给点思路,能上代码更好。

[code="java"]
import java.util.LinkedList;

//采用广度优先遍历

public class BroadFirst {

//用于存储遍历情况的列表   
private LinkedList<String> list=new LinkedList<String>();   
//传入的参数   
private String[][] para=null;   

public BroadFirst(String[][] para){   
    this.para=para;   
    //将第一个列表添加到遍历列表的前端   
    for(String str:this.para[0]){   
        this.list.addLast(str);   
    }   
    //产生序列   
    this.createSequence();   
}   

private void createSequence() {   
    int innerLength = 1;   
    while (true) {   
        String temp = this.list.pollFirst();   
        innerLength = temp.length();   
        // 深度够了则执行完成   
        if (innerLength == para.length) {   
            this.list.addFirst(temp);   
            return;   
        } else {   
            for (String innerStr : this.para[innerLength]) {   
                // 依次入队列的末端   
                this.list.addLast(temp + innerStr);   

            }   
        }   
    }   
}   

public void printString(){   

    for(String str:this.list){   
        System.out.println(str);   
    }   
}   
//测试   
public static void main(String[] args) {   
    String[][] temp={{"D"},{"S","X"},{"D"},{"S"},{"C","Z"},{"P"}};
    BroadFirst bf=new BroadFirst(temp);   
    bf.printString();   
}   

}
[/code]
输出:
DSDSCP
DSDSZP
DXDSCP
DXDSZP
//看看这个能不能满足你的需要

你这个样例输入本身有问题啊,String arrs={'D','S-X','D','S','C-Z','P'}
这是个字符串嘛?
还是你想搞个 字符串数组?