笛卡尔积:itertools.product(*iterables[, repeat])

import itertools
for i in itertools.product('BCDEF', repeat = 2):
print(''.join(i),end=",")
print('\n') # 输出 BB BC BD BE BF CB CC CD CE CF DB DC DD DE DF EB EC ED EE EF FB FC FD FE FF

  两个元组进行笛卡尔积:

import itertools
a = (1, 2)
b = ('A', 'B', 'C')
c = itertools.product(a,b)
for i in c:
print(i,end=",") # 输出(1, 'A') (1, 'B') (1, 'C') (2, 'A') (2, 'B') (2, 'C')

排列:itertools.permutations(iterable[, r])

import itertools
for i in itertools.permutations('BCD', 2):
print(''.join(i),end=",")
# 输出 BC BD CB CD DB DC
print('\n')

组合:itertools.combinations(iterable, r)

import itertools
for i in itertools.combinations('BCDEF', 2):
print(''.join(i),end=" ")
# 输出 BC BD BE BF CD CE CF DE DF EF
print('\n')

组合(包含自身重复):itertools.combinations_with_replacement(iterable, r)

import itertools
for i in itertools.combinations_with_replacement('ABC', 3):
print (''.join(i),end=' ') # 输出 AAA AAB AAC ABB ABC ACC BBB BBC BCC CCC
print('\n')

举例

'BCDEF五个字母组合问题'
import itertools print("1个组合:")
for i, val in enumerate(list(itertools.combinations('BCDEF', 1))):
print("序号:%s 值:%s" % (i + 1, ''.join(val)))
print("2个组合:")
for i, val in enumerate(list(itertools.combinations('BCDEF', 2))):
print("序号:%s 值:%s" % (i + 1, ''.join(val)))
print("3个组合:")
for i, val in enumerate(list(itertools.combinations('BCDEF', 3))):
print("序号:%s 值:%s" % (i + 1, ''.join(val)))
print("4个组合:")
for i, val in enumerate(list(itertools.combinations('BCDEF', 4))):
print("序号:%s 值:%s" % (i + 1, ''.join(val)))
print("5个组合:")
for i, val in enumerate(list(itertools.combinations('BCDEF', 5))):
print("序号:%s 值:%s" % (i + 1, ''.join(val)))

python解决排列组合的更多相关文章

  1. python编写排列组合,密码生产功能

    python编写排列组合 python在编写排列组合是会用到  itertools 模块 排列 import itertools mylist = list(itertools.permutation ...

  2. 【Python】排列组合itertools & 集合set

    ■itertools 利用python的itertools可以轻松地进行排列组合运算 itertools的方法基本上都返回迭代器 比如 •itertools.combinations('abcd',2 ...

  3. python 实现排列组合

    1.python语言简单.方便,其内部可以快速实现排列组合算法,下面做简单介绍. 2.一个列表数据任意组合 2.1主要是利用自带的库 #_*_ coding:utf-8 _*_ #__author__ ...

  4. python 编写排列组合

    python在编写排列组合是会用到  itertools 模块 排列 import itertools mylist = list(itertools.permutations([)) # 全排列 p ...

  5. Python实现排列组合

    # -*- coding: utf-8 -*-"""Created on Sat Jun 30 11:49:56 2018 @author: zhen"&quo ...

  6. python算法-排列组合

    排列组合 一.递归 1.自己调用自己 2.找到一个退出的条件 二.全排列:针对给定的一组数据,给出包含所有数据的排列的组合 1:1 1,2:[[1,2],[2,1]] 1,2,3:[[1,2,3],[ ...

  7. python之排列组合测试

    # test permutations and combinations import itertools as it for i in it.combinations('abcd',2): prin ...

  8. python自带的排列组合函数

    需求: 在你的面前有一个n阶的台阶,你一步只能上1级或者2级,请计算出你可以采用多少种不同的方法爬完这个楼梯?输入一个正整数表示这个台阶的级数,输出一个正整数表示有多少种方法爬完这个楼梯. 分析:提炼 ...

  9. 排列组合python

    python 的 itertools模块 可以专业的处理的排列组合问题 写在自己博客里,怕下次找不到喽

随机推荐

  1. iframe使用总结(实战)

    说在前面的话,iframe是可以做很多事情的.例如:a>通过iframe实现跨域;b>使用iframe解决IE6下select遮挡不住的问题c>通过iframe解决Ajax的前进后退 ...

  2. CEOI2019 / CodeForces 1192B. Dynamic Diameter

    题目简述:给定一棵$N \leq 10^5$个节点的树,边上带权,维护以下两个操作: 1. 修改一条边的边权: 2. 询问当前树的直径长度. 解1:code 注意到树的直径有以下性质: 定理:令$\t ...

  3. 14、master原理与源码分析

    一.主备切换机制原理剖析 1.图解 2.部分源码 ###master.scala中的completeRecovery方法: /* * 完成Master的主备切换 */ def completeReco ...

  4. 《挑战30天C++入门极限》C++运算符重载函数基础及其值返回状态

        C++运算符重载函数基础及其值返回状态 运算符重载是C++的重要组成部分,它可以让程序更加的简单易懂,简单的运算符使用可以使复杂函数的理解更直观. 对于普通对象来说我们很自然的会频繁使用算数运 ...

  5. 我为什么选择Vim

    总看到一些飞快敲击键盘而不用鼠标的时候你可以很羡慕和佩服,其实这完全没有必要.就像一个吉他手熟练地弹吉他有必要羡慕吗?一个瓦匠熟练地砌砖有必要羡慕吗?这些都是他们赖以生存的工具而已,熟练地运用工具是理 ...

  6. Nodejs技巧之---Exceljs

    工作中我们可能会遇到制作表格的需求,那么针对nodejs如何制作一个汇总表格呢? 今天我们就在此介绍下exceljs的基本使用,应该可以满足我们大部分的需求. 第一部分 下载 npm install ...

  7. freemark 异常

    现象: 前几天跟前端联调,freemark报异常如下: For "#if" condition: Expected a boolean, but this has evaluate ...

  8. 启用Win10的Linux子系统

    今天为大家介绍如何才能启用Windows10下的Linux子系统,废话不多说,直接看步骤: 启用开发者模式打开设置 点击更新和安全 点击开发者选项 启用开发人员模式 更改系统功能使用win+X快捷键调 ...

  9. 字节码(.class)文件的加载过程

    类加载 在Java代码中,类型的加载.连接与初始化过程都是在程序运行期间完成的. 类型可以是Class,Interface, 枚举等. Java虚拟机与程序的生命周期 在如下几种情况下,Java虚拟机 ...

  10. windows下更改Apache以fastcgi方式运行php

    Apache 默认 apache2handler 方式运行处理php. 下面说切换方法: 1.下载fastcgi模块,打开https://www.apachelounge.com/download/选 ...