문자열의 모든 하위 문자열에 대한 모든 단일 순열을 얻는 방법은 무엇입니까?

AJ Uppal

파이썬에서 일반 문자열의 순열을 얻는 방법을 알고 있습니다.

>>> 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리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

char 배열에서 일치하는 모든 문자의 색인을 얻는 방법은 무엇입니까?

분류에서Dev

Pandas 데이터 프레임의 모든 열 행에서 문자열의 대문자 단어를 추출하는 방법은 무엇입니까?

분류에서Dev

문자열에서 대문자가 아닌 모든 문자를 제거하는 방법은 무엇입니까?

분류에서Dev

벡터의 모든 문자열을 대문자로 변경하는 방법은 무엇입니까?

분류에서Dev

mongodb에서 개수와 함께 주어진 단어와 일치하는 모든 하위 문자열을 얻는 방법은 무엇입니까?

분류에서Dev

문자열 VBA Word에 대한 모든 맞춤법 오류를 무시하는 방법은 무엇입니까?

분류에서Dev

파일의 모든 문자열을 집합에 추가하는 방법은 무엇입니까?

분류에서Dev

가능한 모든 문자에서 그려진 문자열을 생성하는 방법은 무엇입니까?

분류에서Dev

한 줄에 목록의 모든 문자열을 인쇄하는 방법은 무엇입니까?

분류에서Dev

iOS의 입력 문자열에서 모든 단어를 검색하는 방법은 무엇입니까?

분류에서Dev

긴 문자열 조합 목록에서 다양한 문자열을 포함하는 모든 파일을 찾는 방법은 무엇입니까?

분류에서Dev

긴 문자열 조합 목록에서 다양한 문자열을 포함하는 모든 파일을 찾는 방법은 무엇입니까?

분류에서Dev

StructOpt : 단일 문자열에서 모든 인수를 결합하는 방법은 무엇입니까?

분류에서Dev

AWS 버킷에 문자열이 포함 된 모든 파일을 나열하는 방법은 무엇입니까?

분류에서Dev

한 번에 2D 문자열의 모든 요소를 입력하는 방법은 무엇입니까?

분류에서Dev

문자열에서 단어 뒤의 모든 텍스트를 제거하는 방법은 무엇입니까?

분류에서Dev

R의 주어진 위치에서 변수 문자가 주어진 모든 가능한 문자열을 생성하는 방법은 무엇입니까?

분류에서Dev

동일한 열에서 모든 값을 얻는 방법은 무엇입니까?

분류에서Dev

Bash의 디렉토리에있는 모든 파일의 모든 줄에 문자열을 추가하는 방법은 무엇입니까?

분류에서Dev

문자열 대체를 사용하여 Linux에서 디렉토리의 모든 파일 이름을 바꾸는 방법은 무엇입니까?

분류에서Dev

문자열에서 모든 파일 이름 확장자를 제거하는 방법은 무엇입니까?

분류에서Dev

C ++에서 길이 12의 모든 문자열을 나열하는 방법은 무엇입니까?

분류에서Dev

iframe에서 모든 HTML 문자열을 얻는 방법은 무엇입니까?

분류에서Dev

파이썬에서 문자열 배열의 모든 요소를 대문자로 사용하는 가장 좋은 방법은 무엇입니까?

분류에서Dev

jquery의 문자열에서 잘못된 문자의 모든 값을 얻는 방법은 무엇입니까?

분류에서Dev

C ++ 11에서 문자열의 모든 문자를 변경하는 방법은 무엇입니까?

분류에서Dev

Excel 2016 : 다른 열의 셀 열에서 일치하는 모든 슈퍼 문자열을 찾는 방법은 무엇입니까?

분류에서Dev

모든 고유 문자를 포함하지 않고 char 문자열에서 모든 하위 집합을 얻는 방법에 대한 알고리즘은 무엇입니까?

분류에서Dev

NameValueCollection에서 모든 값을 단일 문자열로 가져 오는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    char 배열에서 일치하는 모든 문자의 색인을 얻는 방법은 무엇입니까?

  2. 2

    Pandas 데이터 프레임의 모든 열 행에서 문자열의 대문자 단어를 추출하는 방법은 무엇입니까?

  3. 3

    문자열에서 대문자가 아닌 모든 문자를 제거하는 방법은 무엇입니까?

  4. 4

    벡터의 모든 문자열을 대문자로 변경하는 방법은 무엇입니까?

  5. 5

    mongodb에서 개수와 함께 주어진 단어와 일치하는 모든 하위 문자열을 얻는 방법은 무엇입니까?

  6. 6

    문자열 VBA Word에 대한 모든 맞춤법 오류를 무시하는 방법은 무엇입니까?

  7. 7

    파일의 모든 문자열을 집합에 추가하는 방법은 무엇입니까?

  8. 8

    가능한 모든 문자에서 그려진 문자열을 생성하는 방법은 무엇입니까?

  9. 9

    한 줄에 목록의 모든 문자열을 인쇄하는 방법은 무엇입니까?

  10. 10

    iOS의 입력 문자열에서 모든 단어를 검색하는 방법은 무엇입니까?

  11. 11

    긴 문자열 조합 목록에서 다양한 문자열을 포함하는 모든 파일을 찾는 방법은 무엇입니까?

  12. 12

    긴 문자열 조합 목록에서 다양한 문자열을 포함하는 모든 파일을 찾는 방법은 무엇입니까?

  13. 13

    StructOpt : 단일 문자열에서 모든 인수를 결합하는 방법은 무엇입니까?

  14. 14

    AWS 버킷에 문자열이 포함 된 모든 파일을 나열하는 방법은 무엇입니까?

  15. 15

    한 번에 2D 문자열의 모든 요소를 입력하는 방법은 무엇입니까?

  16. 16

    문자열에서 단어 뒤의 모든 텍스트를 제거하는 방법은 무엇입니까?

  17. 17

    R의 주어진 위치에서 변수 문자가 주어진 모든 가능한 문자열을 생성하는 방법은 무엇입니까?

  18. 18

    동일한 열에서 모든 값을 얻는 방법은 무엇입니까?

  19. 19

    Bash의 디렉토리에있는 모든 파일의 모든 줄에 문자열을 추가하는 방법은 무엇입니까?

  20. 20

    문자열 대체를 사용하여 Linux에서 디렉토리의 모든 파일 이름을 바꾸는 방법은 무엇입니까?

  21. 21

    문자열에서 모든 파일 이름 확장자를 제거하는 방법은 무엇입니까?

  22. 22

    C ++에서 길이 12의 모든 문자열을 나열하는 방법은 무엇입니까?

  23. 23

    iframe에서 모든 HTML 문자열을 얻는 방법은 무엇입니까?

  24. 24

    파이썬에서 문자열 배열의 모든 요소를 대문자로 사용하는 가장 좋은 방법은 무엇입니까?

  25. 25

    jquery의 문자열에서 잘못된 문자의 모든 값을 얻는 방법은 무엇입니까?

  26. 26

    C ++ 11에서 문자열의 모든 문자를 변경하는 방법은 무엇입니까?

  27. 27

    Excel 2016 : 다른 열의 셀 열에서 일치하는 모든 슈퍼 문자열을 찾는 방법은 무엇입니까?

  28. 28

    모든 고유 문자를 포함하지 않고 char 문자열에서 모든 하위 집합을 얻는 방법에 대한 알고리즘은 무엇입니까?

  29. 29

    NameValueCollection에서 모든 값을 단일 문자열로 가져 오는 방법은 무엇입니까?

뜨겁다태그

보관