首页 文章

输出多个列表的所有可能排列

提问于
浏览
1

我是Python的新手,刚刚买了我的第一本“Crashcourse in Python”一书 - 最初我选择的语言是PHP .

My Objective:

我想要一个脚本,它将在屏幕上输出特定模式的所有可能排列的列表 . 订单并不重要 .

原始数据和模式(数据集不会更改):

List1 = ['CA', 'CB', 'CC', 'CD', 'CE', 'CF', 'CG', 'CH', 'CJ', 'CK', 'CL', 'CM', 'CN', 'CO', 'CP', 'CR', 'CS', 'CT', 'CU', 'CV', 'CW', 'CX', 'CY']
List2 = ['51', '02', '52', '03', '53', '04', '54', '05', '55', '06', '56', '07', '57', '08', '58', '09', '59', '10', '60', '11', '61', '12', '62', '13', '63', '14', '64', '15', '65', '16', '66', '17']
List3 = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']
List4 = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']
List5 = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']

String Output:

[List1] [List2] [List3] [List4] [List5]

Example:

导致大量7个字符的字母数字字符串

  • CH07YCD

  • CT11MPP

Crap Maths:

难道我的数学是正确的,因为我会看10,174,464个条目吗? List1(23)x List2(32)x List3,4,5(13,824) .

My question:

itertools是最好用的吗?如果是这样,怎么样?如果不是,那是什么?

1 回答

  • 4
    >>> import itertools
    >>> s = [List1, List2, List3, List4, List5]
    >>> n = list(itertools.product(*s))
    >>> len(n)
    10174464
    

    itertools.product - >大致相当于生成器表达式中的嵌套for循环 .

相关问题