How do I generate all possible combinations of a string with spaces between the characters? Python -
how generate possible combinations of string spaces between characters?
[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 r', 'f oob r', 'fo ob r', 'f o ob r', 'foo b r', 'f oo b r', 'fo o b r', 'f o o b r', '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 r', 'f oob r', 'fo ob r', 'f o ob r', 'foo b r', 'f oo b r', 'fo o b r', 'f o o b r']
import itertools def func(s): if not s: return [s] binary = it.product(['',' '], repeat=len(s)-1) zipped = (it.izip_longest(s , comb, fillvalue='') comb in binary) return [''.join(it.chain.from_iterable(x)) x in zipped] func('foobar') output:
['foobar', 'fooba r', 'foob ar', 'foob r', 'foo bar', 'foo ba r', 'foo b ar', 'foo b r', 'fo obar', 'fo oba r', 'fo ob ar', 'fo ob r', 'fo o bar', 'fo o ba r', 'fo o b ar', 'fo o b r', 'f oobar', 'f ooba r', 'f oob ar', 'f oob r', 'f oo bar', 'f oo ba r', 'f oo b ar', 'f oo b r', 'f o obar', 'f o oba r', 'f o ob ar', 'f o ob r', 'f o o bar', 'f o o ba r', 'f o o b ar', 'f o o b r']
Comments
Post a Comment