Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中使用递归生成给定长度的所有二进制字符串的最佳方法是什么?_Python_Algorithm_Recursion_Binary - Fatal编程技术网

在Python中使用递归生成给定长度的所有二进制字符串的最佳方法是什么?

在Python中使用递归生成给定长度的所有二进制字符串的最佳方法是什么?,python,algorithm,recursion,binary,Python,Algorithm,Recursion,Binary,我现在正在研究递归,并尝试构建一些代码来生成给定长度“n”的所有二进制字符串。 我找到了一个用于循环的代码: n = 5 for i in range(2**n, 2**(n+1)): print(bin[i][3:]) 但是有没有其他方法可以用递归来解决这个问题呢? 谢谢大家! 很难确定哪种方式是“最好的”;) 我们必须向当前字符串中添加零或一,然后转到下一个递归级别 停止条件达到所需长度(此处n-1,因为我们必须提供与您的示例相对应的前导条件) MBo给出的答案不是输入2和3的正确

我现在正在研究递归,并尝试构建一些代码来生成给定长度“n”的所有二进制字符串。 我找到了一个用于循环的代码:

n = 5
for i in range(2**n, 2**(n+1)):
    print(bin[i][3:])
但是有没有其他方法可以用递归来解决这个问题呢?
谢谢大家!

很难确定哪种方式是“最好的”;)

我们必须向当前字符串中添加零或一,然后转到下一个递归级别

停止条件达到所需长度(此处
n-1
,因为我们必须提供与您的示例相对应的前导条件)


MBo给出的答案不是输入2和3的正确答案

例如。 投入:2

输出应为:

0 0

01

10

11

投入:3

输出应为:

0 0 0

01

0110

01

100

101

110

11

我修改了相同的代码如下

def genbin(n, bs=''):
if len(bs) == n:
    print(bs)
else:
    genbin(n, bs + '0')
    genbin(n, bs + '1')


genbin(3)


000
001
010
011
100
101
110
111

您可以共享一些示例输入和输出吗?如果输入=2,则输出应为00、01、10、11
def genbin(n, bs=''):
if len(bs) == n:
    print(bs)
else:
    genbin(n, bs + '0')
    genbin(n, bs + '1')


genbin(3)


000
001
010
011
100
101
110
111