以(n,k)形式获取点的选项

时间:2018-12-03 16:12:34

标签: python python-3.x

我想编写一个递归函数,该函数打印出到达N和K为正的点的方式,例如,如果该点是(1,1) r =对 u =上

因此该函数将打印ur,ru。 如果点是(2,2),则可能的步骤是:rruu,ruru,urru,uurr 我开发了一个函数,该函数可打印 all (全部包含rrrr或uuuu)和r posibale的组合。但是我只需要'r'的数量='u'的数量的序列。 我写了func来帮助我想要的功能

def assist_print_sequences(char_list, last_seq, n):
    # base case
    if n > 0:
        for char in char_list:
            # looping over all the chars in list and adds them to last chars until n<1.
            assist_print_sequences(char_list, last_seq + char, n-1)
    # when n is smaller than 1.
    else:
        print(last_seq)

1 个答案:

答案 0 :(得分:2)

似乎您想要的是target的排列

target = ["r"] * n + ["u"] * k
target_string = "".join(target)

然后从How to generate all permutations of a list in Python中选择答案,您便可以递归地找到要达到的目标的所有路径(可以递归找到排列)