如何获得字符串的所有子字符串的每个单个排列?

AJ Uppal

我知道如何在python中获取纯字符串的排列:

>>> from itertools import permutations
>>> perms = [''.join(p) for p in permutations('stack')]
>>> print perms
...

但是,我怎么会得到的排列'stac''stak''sack''stck''stc''st',等等?我想要的输出是:

>>> permutations('pet')
['pet', 'pte', 'ept', 'etp', 'tpe', 'tep', 'pe', 'ep', 'p', 'e', 't', 'pt', 'tp', 'et', 'te']

到目前为止,我有:

def permutate(values, size):
  return map(lambda p: [values[i] for i in p], permutate_positions(len(values), size))

def permutate_positions(n, size):
  if (n==1):
    return [[n]]
  unique = []
  for p in map(lambda perm: perm[:size], [ p[:i-1] + [n-1] + p[i-1:] for p in permutate_positions(n-1, size) for i in range(1, n+1) ]):
    if p not in unique:
      unique.append(p)
  return unique

def perm(word):
  all = []
  for k in range(1, len(word)+1):
     all.append(permutate([' ']+list(word), k))
  return all

运行方式为:

>>> perm('pet')
[[['t'], ['e'], ['p']], [['t', 'e'], ['e', 't'], ['e', 'p'], ['t', 'p'], ['p', 't'], ['p', 'e'], ['p', 'p']], [['t', 'e', 'p'], ['e', 't', 'p'], ['e', 'p', 't'], ['e', 'p', 'p'], ['t', 'p', 'e'], ['p', 't', 'e'], ['p', 'e', 't'], ['p', 'e', 'p'], ['t', 'p', 'p'], ['p', 't', 'p'], ['p', 'p', 't'], ['p', 'p', 'e']]]
>>> 

但是,它有一堆列表,并且具有类似['p','p','t']的值!

我该怎么做呢?非常感谢您的帮助。

YS-L

这是使用itertools.permutations做到这一点的一种方法

from itertools import permutations
s = 'pet'
print [''.join(p) for i in range(1, len(s)+1) for p in permutations(s, i)]

输出:

['p', 'e', 't', 'pe', 'pt', 'ep', 'et', 'tp', 'te', 'pet', 'pte', 'ept', 'etp', 'tpe', 'tep']

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何获取所有子字符串的所有子字符串和所有字符排列?

字符串jquery的所有排列

如何连接单个int列的所有行以获得单个字符串?

如何获得给定字符串的子字符串?

如何检查字符串是否具有子字符串的所有字符?

如何从NameValueCollection获得所有值作为单个字符串?

如何遍历单个记录中的所有字符串

如何获得子字符串的JavaScript?

如何在带有子字符串的字符串中获得多次出现?

如何获得特定索引后的所有字符串?

如何获得字符串的所有字谜

在字符串数组中查找包含子字符串的所有字符串

如何獲取字符串大小為 k 的所有子字符串?

如何从字符串中获取特定格式的所有子字符串

如何在Python中获取字符串的所有连续子字符串?

如何从字符串中删除所有子字符串

如何用其他字符串javascript替换所有子字符串

如何获取字符串中的所有子字符串(用户输入)

如何在以{{开头并以}结尾的字符串中查找所有子字符串

在Python中找到字符串中的所有子字符串,如何使它更好?

Swift算法:如何获取包含所有子字符串而不重复的字符串

字符串排列

如何查找具有所有不同字符的字符串的排列?

排列所有字符串中的单词

递归打印字符串的所有排列(Javascript)

生成给定字符串的所有排列

列出字符串/整数的所有排列

生成字符串的所有可能排列的列表

C ++一组字符串的所有排列