我有以下清单:['a', 'b', 'c']

我正在寻找一种方法来生成所有可能的字符串,这些字符串包含以下限制:一个字符不能出现多次(aab,aba,abca等无效)

可以排除字符(ab有效,即使c不存在;a也有效,即使b和{}不存在)

我可以用

^{pr2}$

生成包含a、b和{}的所有字符串。不过我也得这么做[''.join(p) for p in permutations('ab')]

[''.join(p) for p in permutations('ac')]

[''.join(p) for p in permutations('bc')]

正如你可能知道的,如果最初的可用字符列表很长,我需要做很多工作。因此,我在Python中寻找一种优雅的方法来生成上述所有内容,只需输入允许的字符列表:def generate(vals=['a', 'b', 'c']):

# The initial list of allowed characters also has to be part of the

# final list since these also represent valid values

res = vals

# Generate all possible strings and store in res

return res

我需要这个,因为我想为我的web服务器的POST请求提供一个参数,其中一个参数(我们称之为val)可以采用不同的唯一值(单个字符或这些字符的组合),以便触发一些数据生成。可用值的列表将随着时间的推移而增长,因此我希望通过自动检查val的给定值是否有效,从而使处理请求更容易。在

我也一直在考虑迭代允许字符列表中的每个元素,并将其连接到其他元素(“a”、“ab”、“ac”、“abc”、“b”、“ba”、“bc”等等),但我不知道该怎么做。在

python怎么生成不重复的字符_如何在不重复的情况下生成一组字符的所有组合?...相关推荐

  1. 在高并发分布式情况下生成唯一标识id

    做项目的时候经常会用id作为唯一标识. 但是当有这样一个需求出现的时候:工程分布式部署,要求抗住高并发.并且生成的id是根据时间自增的.解决这个问题有很多种方法,但是要选择一个性价比比较高的策略比较不 ...

  2. boost::spirit模块实现在正确引用的情况下打印任何字符序列的测试程序

    boost::spirit模块实现在正确引用的情况下打印任何字符序列的测试程序 实现功能 C++实现代码 实现功能 boost::spirit模块实现在正确引用的情况下打印任何字符序列的测试程序 C+ ...

  3. python删除字符串中重复字符_删除字符串中重复字符python 用CAD怎么画DNA反向

    用CAD怎么画DNA反向平行双螺旋结构绘螺旋线时,用选扭曲,确定顺时针. 画双头螺旋线时,第二根螺旋线底圆起点与第一根螺旋线底圆起点,可用角度分隔如180°.python去除文本中重复的字符串可有可无 ...

  4. java中读取单个字符_如何使用Java中的Scanner类读取单个字符?

    从Java 1.5开始引入Scanner类.此类接受File,InputStream,Path和String对象,使用正则表达式逐个令牌读取所有原始数据类型和String(从给定的源)令牌.默认情况下 ...

  5. java ascii码转字符_一文让你读懂JAVA.IO、字符编码、

    1 JAVA.IO字节流 inputstream.png LineNumberInputStream和StringBufferInputStream官方建议不再使用,推荐使用LineNumberRea ...

  6. ise生成msk文件的用处_修改cad图纸后怎么设置不生成bak文件及bak备份文件的用处...

    默认状态下,AutoCAD在保存的时候都会生成备份文件(*.bak),这也是CAD的一种安全保护错误,避免软件操作或保存过程中出现异常导致图形文件损坏.BAK文件就是图纸上一次保存的版本.如果图纸已经 ...

  7. html2canvas如何在元素隐藏的情况下生成截图

    html2canvas官网地址:http://html2canvas.hertzen.com/ github地址:https://github.com/niklasvh/html2canvas/ 从官 ...

  8. 如何根据分页的当前页数查询数据_数据量很大的情况下,如何分页查询优化方案?...

    当需要从数据库查询的表有上万条记录的时候,一次性查询所有结果会变得很慢,特别是随着数据量的增加特别明显,这时需要使用分页查询.对于数据库分页查询,也有很多种方法和优化的点.下面简单说一下我知道的一些方 ...

  9. 在不知道根节点的情况下生成树形结构 (采用JSONObject)

    废话不多说直接上代码 /*** * 生成树形结构 在不知道跟节点的情况下* @param list 源数据* @param nodeList 跟节点数据* @param childName 子节点名称 ...

  10. 编写脚本电脑怎么编写界面_在任何无法理解的情况下,请编写脚本

    编写脚本电脑怎么编写界面 脚本编写是使您的应用程序在运行时就可根据客户需求进行调整的最流行的方法之一. 与往常一样,此方法不仅带来好处,例如,在灵活性和可管理性之间存在众所周知的折衷方案. 本文不是从 ...

最新文章

  1. POJ-1322 Chocolate 动态规划
  2. C字符数组赋值(转)
  3. MDaemon日志报错:550 aa@*.com must check for new mail first
  4. linux内核之设备驱动
  5. 51单片机实战教程基础硬件篇(三 51单片机开发板设计)
  6. uni-app 超详细教程(一)(从菜鸟到大佬)
  7. 统计学习导论之R语言应用(四):分类算法R语言代码实战
  8. 设置文字最后一行,末尾自定义
  9. Python 时间序列异常点检测 | 详解 S-ESD 和 S-H-ESD
  10. 以太坊平台增加类 CrytoNote 环签名
  11. windows远程mstsc命令指定远程的窗口大小
  12. 禾川科技科创板上市破发:大跌17% 公司市值近30亿
  13. 解析增量xml数据到数据库
  14. 【fq_codel】fq_codel on Router
  15. Win11正式发布,新功能炸裂!
  16. 常见可燃气体爆炸限汇总
  17. html页面高度问题
  18. BigDecimal使用2--保留小数点位数
  19. 有一门课不及格的学生
  20. 非旺玖原装的PL2303,请联系您的供货商

热门文章

  1. MyBatis动态SQL语法详解(二)
  2. VMWare10克隆虚拟机
  3. 崔西凡JavaWeb笔记day16~day18(2016年9月19日13:06:38)
  4. Python文件格式详解:py、pyc、pyo、pyd文件区别
  5. 易维帮助台:连接客户,推动企业业务高速发展
  6. Android面试专题系列(四):Activity之间如何进行通信→LiveDataBus
  7. zookeeper下载安装 window&linux
  8. 由于找不到MSVCR110.dll,无法继续执行代码...的解决方法
  9. 大学“电路分析基础”试题合集第七章
  10. 安装包制作工具Install_Pack 3.0正式版(WPF全代码)