자바·파이썬·자바스크립트/파이썬 프로그래밍

문자열 경우의수 로직 구현

바로이순간 2011. 12. 27. 14:33

5개의 단어로 경우의 수를 만들려고 합니다.

A,B,C,D,E

경우의 수는 아래와 같은 형식의 값들을 다 뽑아 내야 하는데요. 이것을 로직화가 가능할까요.

도와주세요

A

AB

AC

AD

AE

ABC

ABD

ABE

ACD

ACE

ADE

ABCD

ABCE

ABDE

ABCDE

B

BC

BD

BE

BCD

BCE

BDE

BCDE

C

CD

CE

CDE

D

DE

E

------------------------------------------------------

def enumTwo(s,cl,k):
    if k==0:
        print s
        return
    n=len(cl)
    for x in range(n-k+1):
        enumTwo(s+cl[x], cl[x+1:],k-1)


def enumOne(s,cl):
    print s
    n=len(cl)
    for x in range(1,n+1):
        enumTwo(s,cl,x)


al=['A','B','C','D','E']
n=len(al)
for x in range(n):
    enumOne(al[x],al[x+1:])