python实现排列组合代码

2023-11-14

    def combination(n, c, com=1, limit=0, per=[]):
        for pos in range(limit, n):
            t = per + [pos]
            if len(set(t)) == len(t):
                if len(t) == c:
                    yield [pos, ]
                else:
                    for result in combination(n, c, com, com * pos, per + [pos, ]):
                        yield [pos, ] + result


    print("排列:")  # A8/1
    for res in combination(8, 1, 0):
        print(res)

    print("组合:") # C8/3
    for res in combination(8, 3):
        print(res)

排列就是每次都从0开始选,组合的话,后一个必须大于前一个,combination第三个参数com表示是排列还是组合,因为函数名是combination,所以缺省是组合。

检查的话:无论排列还是组合,都不能重复,就是把列表变成词典,看看长度是否一样,不一样了就是有重复元素,不应该放到结果中

借鉴文章:戳这里

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python实现排列组合代码 的相关文章

随机推荐

  • 使用纯java ssh方式连接linux服务器,并用此方式部署war到linux的tomcat下

    b 纯java代码使用ssh方式登录linux服务 实际应用中 可以使用这种方式上传部署web工程war包 并且部署启动tomcat 一个自动化完成所有工作 起到节省时间作用 1 去 url http www jcraft com jsch
  • QIIME2-DADA2&Deblur

    Deblur使用序列错误配置文件将错误的序列与从其来源的真实生物序列相关联 从而得到高质量的序列变异数据 主要为两个步骤 DADA2 质控 汇总版 qiime dada2 denoise single i demultiplexed seq
  • notepad 自动换行 分屏 快捷键

    一 自动换行 视图 gt 自动换行 二 分屏 Tab标签 上方文件名 右键 gt 移动到另一视图 三 快捷键 快速复制 Ctrl D 区块注释 Ctrl Shift Q 保存所有打开文件 Ctrl Shift S 行注释 Ctrl K 取消
  • 内卷化时代,一名普通测试员的铁饭碗究竟是什么?

    内卷 是现在热度非常高的一个词汇 随着热度不断攀升 隐隐有了 万物皆可卷 的程度 究其来源 内卷这个词的出现 是伴随着996开始讨论的 很不幸 996 福报等等这些词的重灾区和源头就是计算机 互联网行业 那么作为行业中一个非常重要的分支 测
  • web前端模块化框架,一句代码让html可直接引入别的html文件

    web前端模块化框架 介绍 一个web前端模块化框架 可以引入模板html文件 利于前后端分离的网站重复代码以及模块的复用 软件架构 本框架是利用mloader js文件加载带有mloader template的类的标签从而进行的文档的动态
  • 基于Keil创建汇编语言的STM32工程

    本文是在Keil嵌入式开发环境下完成一个基于STM32汇编程序的编写 学习在没有硬件条件下进行仿真调试 观察ARM寄存器的变化状况 记录过程生成的 hex文件各段的大小 了解Hex文件格式及其前8个字节内容含义 文章目录 一 新建工程 二
  • 建立双机调试

    1 首先你得有一个VMware 我这里是VM10 主机是64windows操作系统 2 我在虚拟机中装了32 位win7 3 下载 VirtualKD 我预先放在百度云盘的资源 https pan baidu com s 1eRD4AR4
  • C# 系统应用之无标题窗体移动的两种方法

    在做项目界面设计中 常常为了美观需要设置窗体属性 FormBorderStyle 窗体边框和标题栏外观 为None无标题窗口 此时隐藏标题的窗口怎样实现移动呢 我根据自己的项目从自己完成的两种方法进行讲解 一 MouseDown Mouse
  • TypeScript的类型推导

    TypeScript 简称ts 是一种静态类型的编程语言 在类型检查和类型推导方面具有一定的优势 类型推导是TypeScript在代码编写的过程中自动识别并设置变量类型 从而提高代码的可读性和健壮性 减少了代码中潜在的错误 在 TypeSc
  • 编译原理实验一:词法分析

    实验一 词法分析程序 一 实验目的 通过设计编制调试一个具体的词法分析程序 加深对词法分析原理的理解 并掌握在对程序设计语言源程序进行扫描过程中将其分解为各类单词的词法分析方法 编制一个读单词过程 从输入的源程序中 识别出各个具有独立意义的
  • 网络入门基础(网络布线)

    目录 前言 一 布线系统 1 工作区子系统 2 水平子系统 3 垂直子系统 4 管理子系统 5 设备间子系统 6 建筑群子系统 二 布线材料 1 线槽 2 桥架 走线架 3 配线架 三 网络机柜 四 网络布线 1 需求分析与走线设计 2 估
  • STM32F1之485通信

    485与PC通信 准备工作 首先我们需要准备的工具是一根USB 485转接数据线 STM32F103单片机 也可以是其他单片机 思想思路类似 两根公对公杜邦线 为了让板子和转接口连接 连线工作本人用的485转接器是T R 接F103单片机B
  • zookeeper启动报错:-bash: zkServer.sh: command not found

    zkServer sh command not found 明明已经进入了zookeeper的安装目录bin下了 执行zkServer sh start 没有这个命令 有这个命令 但启动不了 我的两种解决方法 1 一种是到zookeeper
  • 关于Ant自动化编包问题排查价格小思路

    1 确定一下JDK环境变量是否正确 何为是否正确 也就是源码所需要的版本和环境变量所需要的版本是否一致 2 确定引入的中间版本是否正确 同JDK 3 是否使用了正确的编译器 何为使用了正确的编译器 正常情况下不需要指定编译器 使用环境变量配
  • 编码器输出:HTL、TTL

    HTL 即常说的推挽 就是NPN PNP的组合 所以其同时支持PNP与NPN控制电路 电路简单 好用 工作电压较宽 编码器常用5到30V均可 注 HTL输出信号电平一般等同工作电压减三极管压降 有较强的抗干扰能力 它的主要缺点是工作速度比较
  • 如何在华三H3C交换机开启http或web界面远程登录管理

    华三交换机开启web界面实验 现在很多的华三交换机和路由器默认已经自带了WEB图形界面 只需要电脑配置一个互通的ip地址连接后就能登录到web界面 操作管理起来非常方便 但有时某些是没有开启web界面的 下面就以华三模拟器交换机为例操作配置
  • < C++ >:C++ 类和对象(上)

    目录 1 面向过程和面向对象的初步认识 2 类的引入 3 类的访问限定符及封装 3 1 访问限定符 3 2 封装 4 类的声明和定义或类的定义 可以理解成声明和定义 5 类的作用域 6 类的实例化 7 类对象模型 7 1 如何计算类对象的大
  • 释放技术的想象-解码腾讯云软件架构与应用

    欢迎大家前往腾讯云社区 获取更多腾讯海量技术实践干货哦 关于腾讯 你可能玩过 王者荣耀 你可能用过 微信 和它的 小程序 你可能看过 腾讯视频 并且曾为之付费 你可能已经是多年的 QQ 老手但还不知道什么是 MQ 作为成立多年的老牌互联网公
  • 为何零信任架构身份管理平台更可靠?

    随着信息技术的不断进步 云计算 物联网以及移动设备的普及 信息泄露等安全问题愈发频繁 近期 一起某高校学生的信息泄露事件引发了大家的广泛讨论 该校学生利用其身份便利 非法获取了大量学生的姓名 学号 照片等隐私信息 这次热门话题的讨论后 人们
  • python实现排列组合代码

    def combination n c com 1 limit 0 per for pos in range limit n t per pos if len set t len t if len t c yield pos else fo