如何生成字符之间带空格的字符串的所有可能组合?
[in]: "foobar" [out]: ['foobar','f oobar','fo obar','f o obar','foo bar','f oo bar','fo o bar','f o o bar','foob ar','f oob ar','fo ob ar','f o ob ar','foo b ar','f oo b ar','fo o b ar','f o o b ar','fooba r','f ooba r','fo oba r','f o oba r','foo ba r','f oo ba r','fo o ba r','f o o ba r','foob a r','f oob a r','fo ob a r','f o ob a r','foo b a r','f oo b a r','fo o b a r','f o o b a r','foobar','f o o b a r']
解决方法
import itertools as it def func(s): if not s: return [s] binary = it.product(['',' '],repeat=len(s)-1) zipped = (it.izip_longest(s,comb,fillvalue='') for comb in binary) return [''.join(it.chain.from_iterable(x)) for x in zipped] func('foobar')
输出:
['foobar','f o o b a r']