python-2.7 - python从单词列表中生成所有组合
问题描述
我想创建简单的脚本来生成从用户名开始的所有 posibile 用户名。
示例输入:
craciun florin ionel
需要输出:
craciun.florin
craciun.florin.ionel
craciun.ionel
florin.ionel
florin.craciun
ionel.florin.craciun
craciunflorin
ionel.craciun.florin
....
我尝试使用该itertools
工具,但输出无法满足我的需要。
我当前的代码:
>>> import itertools
>>> names = ['craciun','florin','ionel']
>>> keywords = ['.'.join(i) for i in itertools.product(names, repeat=2) if i[0] != i[1]]
>>> keywords
['craciun.florin', 'craciun.ionel', 'florin.craciun', 'florin.ionel', 'ionel.craciun', 'ionel.florin']
如何获得所需的输出?
解决方案
一个班轮,因为我们爱他们:
keywords = [ ".".join(i) for i in itertools.chain.from_iterable(itertools.permutations(names, r) for r in [2, 3])]
结果:
['craciun.florin', 'craciun.ionel', 'florin.craciun', 'florin.ionel', 'ionel.craciun', 'ionel.florin', 'craciun.florin.ionel', 'craciun.ionel.florin', 'florin.craciun.ionel', 'florin.ionel.craciun', 'ionel.craciun.florin', 'ionel.florin.craciun']
推荐阅读
- angular - Authguard 阻止导航注册路线。它总是重定向到登录页面
- regex - 如何从 Google 表格中的字符串中提取文本
- node.js - 弹性搜索“过滤器”查询不起作用
- java - 为什么框架上什么都没有显示?
- c++ - 如果语句仅在调试 cout 行之前通过(C 中的多线程)
- bigdata - 如何在配置单元的选择查询中写入两个表的列的联合结果
- nestjs - nestjs如何在项目中配置路径别名
- c# - 无法在 HtmlAgilityPack C# 中使用 X-Path 获取 html 元素
- python - 是否可以在 pymysql 驱动程序上使用 selectinload 和 yield_per?
- angular - 为 Angular Material 表选择每页的所有当前页面