【问题标题】:All possible words from letters in Python [duplicate]Python中字母的所有可能单词[重复]
【发布时间】:2015-02-16 11:40:59
【问题描述】:

在我的程序中,用户将输入字母(最多 5 个),程序将从这些字母中生成所有可能的单词。例如,用户将输入“a b c”。单词将是“abc”、“acb”、“bac”、“bca”、“cab”和“cba”。

我该怎么做?我找不到算法。感谢您的帮助。

感谢大家的帮助。我是初学者。我已经学会了新的置换函数:)

【问题讨论】:

  • 你想要单词,还是字符序列?
  • 请向我们展示您尝试过的方法(或者甚至是您见过的算法示例,但不能完全满足您的需求)并解释为什么它不起作用。
  • 您所要求的称为“排列”。

标签: python word letter


【解决方案1】:
import itertools

In [146]: list(itertools.permutations('abc'))
Out[146]: 
[('a', 'b', 'c'),
 ('a', 'c', 'b'),
 ('b', 'a', 'c'),
 ('b', 'c', 'a'),
 ('c', 'a', 'b'),
 ('c', 'b', 'a')]

In [147]: [''.join(p) for p in itertools.permutations('abc')]
Out[147]: ['abc', 'acb', 'bac', 'bca', 'cab', 'cba']

【讨论】:

    【解决方案2】:
    >>> import itertools
    >>> for word in itertools.permutations("abc"):
    ...   print word, ''.join(word)
    ...
    ('a', 'b', 'c') abc
    ('a', 'c', 'b') acb
    ('b', 'a', 'c') bac
    ('b', 'c', 'a') bca
    ('c', 'a', 'b') cab
    ('c', 'b', 'a') cba
    

    【讨论】:

      猜你喜欢
      • 2014-11-21
      • 2019-06-02
      • 1970-01-01
      • 2014-12-13
      • 2015-03-09
      • 1970-01-01
      • 1970-01-01
      • 2019-06-05
      • 1970-01-01
      相关资源
      最近更新 更多