找到单词组合的任何方法?

Ant*_*t's 2 groovy

我想找到给定单词的所有可能组合.比如说,给定的单词是"the"然后我需要"t,h,e,teh ......".我必须在groovy中找到这个,有什么方法吗?或者请告诉我算法的大纲.

tim*_*tes 6

如果你也需要子集,你可以这样做:

("word" as List).subsequences()*.permutations().inject( [] ) { list, set ->
  list.addAll( set )
  list
}*.join().sort { it.length() }
Run Code Online (Sandbox Code Playgroud)

它给你以下输出:

[o,d,r,w,dw,wd,do,od,dr,rd,wr,rw,ow,wo,ro,or owd,wod,wdo,odw,dwo,dow,orw,owr,wor ,wro,rwo,行,dor,ord,odr,rdo,rod,dro,wdr,rwd,drw,rdw,wrd,dwr,wrdo,orwd,wrod,wodr,ordw,wdor,rwod,wdro,word,owdr ,rdow,卓尔,drwo,rdwo,odwr,dorw,odrw,dowr,dwro,rodw,dwor,owrd,rowd,rwdo]

编辑:将其更改set.each为a,list.addAll因为它应该更快(并且读取更容易)