求算法高手帮忙实现一个需求的算法(高分帖)

需求如下:
在excel中有多个列多行,每个单元格都有一个词。对这N列的多行个单词进行自动排列组合。且每个单词都需要参与自动排列组合。
空格作为特殊词根,出现在组合词除词首与词尾之外的任意位置。在一个组合词中,空格只允许出现一次。例如:对于组合词“AB”而言,空格参与组合后生成"A B",而不是“ AB”或“AB ”对于组合次“ABC”而言,空格参与组合后生成“A BC”,"AB C",而不是“ ABC”,"ABC "

支持跨行的交叉组合,例如:B1+C1+D1"欧莱雅保湿日霜",B1+C1+D2"欧莱雅保湿晚霜"。。。。。。。且不能于同行组合 例如D1+D2+D3

作者: allyes_ryan   发布时间: 2011-06-16

http://topic.csdn.net/u/20110611/16/7c5f41a3-75b3-4259-9820-f61b863efcdd.html

作者: caozhy   发布时间: 2011-06-16

每两列中插入一列,包含两个"词":
空格

然后做组合算法剪掉空格数大于1的分支即可.

作者: ChrisAK   发布时间: 2011-06-16

汗....写错了.
是笛卡尔积算法.

作者: ChrisAK   发布时间: 2011-06-16

继续跟帖 最好能带上代码 本人数学不好

作者: allyes_ryan   发布时间: 2011-06-16

引用 3 楼 chrisak 的回复:

汗....写错了.
是笛卡尔积算法.
笛卡尔积算法.排列组合问题

作者: xuexiaodong2009   发布时间: 2011-06-16