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

我有以下清单:['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”等等),但我不知道该怎么做。在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值