小写字符排列组合

题目如下:

有26个小写字母, 找出所有字符的组合, a、b、c、ab、bc、abc、a~z 都是一个组合(顺序无关)

解答

这里要找出所有字符的排列组合,设一个数组为所有排列组合。

ret = []

# 第一个字符
ret = ['a']

# 加入第二个字符之后的数组
ret = ['a', 'ab', 'b']

# 加入第三个字符之后的数组
ret = ['a', 'ab', 'b', 'ac', 'abc', 'bc', 'c']

# ....

可以看到, 数组的每下一步都是新增加字符连接原数组里的每一个元素并加上原数组,最后插入新增字符。

以此类推,最终得到最终结果。代码如下:

In [1]:
def string_ascii_lowercase_arrange():
    ret = []
    for i in range(97, 123):
        ret = ["{}{}".format(v, chr(i)) for v in ret] + ret + [chr(i)]
    return ret

Comments !