如何生成字符之间带空格的字符串的所有可能组合?
[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']
