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

Popular posts from this blog

c# - Operator '==' incompatible with operand types 'Guid' and 'Guid' using DynamicExpression.ParseLambda<T, bool> -