问答详情
源自:4-8 Python之嵌套循环

请问全排列要怎么排列

s1 = 'ABC'

s2 = '123'

s3 = 'xyz'

result = ''

for a in s1:

    for b in s2:

        for c in s3:

            print(a+b+c)

之后要怎么继续排列,才能得到全排列?

如果继续print(a+c+b)把六种方式都列出来感觉有点赘余,假如要列的不止三个字符长度而是n个,要怎么写简便的代码?

提问者:半勺暖阳 2021-04-04 17:24

个回答

  • LVXC
    2021-10-02 17:49:24

    # Enter a code

    s1 = 'ABC'

    s2 = '123'

    s3 = 'xyz'

    for i in s1:

        for j in s2:

            for k in s3:

                print(i + j + k)

                print(i + k + j)

                print(j + k + i)

                print(j + i + k)

                print(k + j + i)

                print(k + i + j)


  • Cassie7J
    2021-06-10 11:00:29

    # Enter a code

    #coding=UTF-8

    import itertools  

            

    s1='ABC'

    s2='123'

    s3='xyz'

    count = 0

    for x in s1:

        for y in s2:

            for z in s3:

                for i in itertools.permutations([x,y,z],3):

                    print(i)


  • 慕先生2494268
    2021-05-19 10:32:08

    http://img2.mukewang.com/60a478760001034d02920158.jpg酱?虽然很弱智但是好歹是个办法

  • 万象天心
    2021-04-05 21:31:55

    如果按你的思路的话 我想不出

    如果实现目的的话 你可以试试这样 看看对不对

    s1 = 'ABC'
    s2 = '123'
    s3 = 'xyz'
    s = s1 + s2 + s3
    count = 0
    for a in s:
        for b in s:
            for c in s:
                if (a != b and b != c and a != c ):
                    print(a+b+c)
                    count+=1
    print(count)
    print(9*8*7)


  • 万象天心
    2021-04-05 16:30:24

    A1x

    A1y

    A1z

    A2x

    A2y

    A2z

    A3x

    A3y

    A3z

    B1x

    B1y

    B1z

    B2x

    B2y

    B2z

    B3x

    B3y

    B3z

    C1x

    C1y

    C1z

    C2x

    C2y

    C2z

    C3x

    C3y

    C3z

    这个不行吗

  • 万象天心
    2021-04-04 19:57:38

    你想要什么样的全排列