擅长:python、mysql、java
<p>稍微浏览一下itertools提供的工具,我发现这个产品在这里可能最有用。它让我们了解在两个单词之间有空格或破折号的所有可能性</p>
<pre class="lang-py prettyprint-override"><code>from itertools import product, zip_longest
my_list = ['mother-in-law', 'co-operation', 'sixty-nine-eighty-ninths']
symbols = ' ', '-'
for string in my_list:
string_split = string.split('-')
for symbols_product in product(symbols, repeat=len(string_split)-1):
if '-' not in symbols_product:
continue
rtn = ""
for word, symbol in zip_longest(string_split, symbols_product, fillvalue=''):
rtn += word + symbol
print(rtn)
print()
</code></pre>
<p>另外,根据您的要求,我将跳过任何两个单词之间没有破折号的迭代</p>
<p>输出:</p>
<pre><code>mother in-law
mother-in law
mother-in-law
co-operation
sixty nine eighty-ninths
sixty nine-eighty ninths
sixty nine-eighty-ninths
sixty-nine eighty ninths
sixty-nine eighty-ninths
sixty-nine-eighty ninths
sixty-nine-eighty-ninths
</code></pre>