Generate all the binary strings of N bits

Given a positive integer number N. The task is to generate all the binary strings of N bits. These binary strings should be in ascending order.

Examples:

Input: 2
Output:
0 0
0 1
1 0
1 1

Input: 3
Output:
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1


Approach: The idea is to try every permutation. For every position, there are 2 options, either ‘0’ or ‘1’. Backtracking is used in this approach to try every possibility/permutation.

Below is the implementation of the above approach:

C++

filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ implementation of the above approach:
  
#include <bits/stdc++.h>
using namespace std;
  
// Function to print the output
void printTheArray(int arr[], int n)
{
    for (int i = 0; i < n; i++) {
        cout << arr[i] << " ";
    }
    cout << endl;
}
  
// Function to generate all binary strings
void generateAllBinaryStrings(int n, int arr[], int i)
{
    if (i == n) {
        printTheArray(arr, n);
        return;
    }
  
    // First assign "0" at ith position
    // and try for all other permutations
    // for remaining positions
    arr[i] = 0;
    generateAllBinaryStrings(n, arr, i + 1);
  
    // And then assign "1" at ith position
    // and try for all other permutations
    // for remaining positions
    arr[i] = 1;
    generateAllBinaryStrings(n, arr, i + 1);
}
  
// Driver Code
int main()
{
    int n = 4;
  
    int arr[n];
  
    // Print all binary strings
    generateAllBinaryStrings(n, arr, 0);
  
    return 0;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java implementation of the above approach:
import java.util.*;
  
class GFG
{
  
// Function to print the output
static void printTheArray(int arr[], int n)
{
    for (int i = 0; i < n; i++) 
    {
        System.out.print(arr[i]+" ");
    }
    System.out.println();
}
  
// Function to generate all binary strings
static void generateAllBinaryStrings(int n, 
                            int arr[], int i)
{
    if (i == n) 
    {
        printTheArray(arr, n);
        return;
    }
  
    // First assign "0" at ith position
    // and try for all other permutations
    // for remaining positions
    arr[i] = 0;
    generateAllBinaryStrings(n, arr, i + 1);
  
    // And then assign "1" at ith position
    // and try for all other permutations
    // for remaining positions
    arr[i] = 1;
    generateAllBinaryStrings(n, arr, i + 1);
}
  
// Driver Code
public static void main(String args[])
{
    int n = 4;
  
    int[] arr = new int[n];
  
    // Print all binary strings
    generateAllBinaryStrings(n, arr, 0);
}
}
  
// This code is contributed by
// Surendra_Gangwar

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python3 implementation of the 
# above approach 
  
# Function to print the output 
def printTheArray(arr, n): 
  
    for i in range(0, n): 
        print(arr[i], end = " "
      
    print()
  
# Function to generate all binary strings 
def generateAllBinaryStrings(n, arr, i): 
  
    if i == n:
        printTheArray(arr, n) 
        return
      
    # First assign "0" at ith position 
    # and try for all other permutations 
    # for remaining positions 
    arr[i] = 0
    generateAllBinaryStrings(n, arr, i + 1
  
    # And then assign "1" at ith position 
    # and try for all other permutations 
    # for remaining positions 
    arr[i] = 1
    generateAllBinaryStrings(n, arr, i + 1
  
# Driver Code 
if __name__ == "__main__"
  
    n = 4
    arr = [None] *
  
    # Print all binary strings 
    generateAllBinaryStrings(n, arr, 0
  
# This code is contributed 
# by Rituraj Jain

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// C# implementation of the above approach:
using System;
  
class GFG
{
  
// Function to print the output
static void printTheArray(int []arr, int n)
{
    for (int i = 0; i < n; i++) 
    {
        Console.Write(arr[i]+" ");
    }
    Console.WriteLine();
}
  
// Function to generate all binary strings
static void generateAllBinaryStrings(int n, 
                            int []arr, int i)
{
    if (i == n) 
    {
        printTheArray(arr, n);
        return;
    }
  
    // First assign "0" at ith position
    // and try for all other permutations
    // for remaining positions
    arr[i] = 0;
    generateAllBinaryStrings(n, arr, i + 1);
  
    // And then assign "1" at ith position
    // and try for all other permutations
    // for remaining positions
    arr[i] = 1;
    generateAllBinaryStrings(n, arr, i + 1);
}
  
// Driver Code
public static void Main(String []args)
{
    int n = 4;
  
    int[] arr = new int[n];
  
    // Print all binary strings
    generateAllBinaryStrings(n, arr, 0);
}
}
  
// This code has been contributed by 29AjayKumar

chevron_right


PHP

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
// PHP implementation of the above approach
  
// Function to print the output
function printTheArray($arr, $n)
{
    for ($i = 0; $i < $n; $i++) 
    {
        echo $arr[$i], " ";
    }
    echo "\n";
}
  
// Function to generate all binary strings
function generateAllBinaryStrings($n, $arr, $i)
{
    if ($i == $n
    {
        printTheArray($arr, $n);
        return;
    }
  
    // First assign "0" at ith position
    // and try for all other permutations
    // for remaining positions
    $arr[$i] = 0;
    generateAllBinaryStrings($n, $arr, $i + 1);
  
    // And then assign "1" at ith position
    // and try for all other permutations
    // for remaining positions
    $arr[$i] = 1;
    generateAllBinaryStrings($n, $arr, $i + 1);
}
  
// Driver Code
$n = 4;
  
$arr = array_fill(0, $n, 0);
  
// Print all binary strings
generateAllBinaryStrings($n, $arr, 0);
  
// This code is contributed by Ryuga 
?>

chevron_right


Output:

0 0 0 0 
0 0 0 1 
0 0 1 0 
0 0 1 1 
0 1 0 0 
0 1 0 1 
0 1 1 0 
0 1 1 1 
1 0 0 0 
1 0 0 1 
1 0 1 0 
1 0 1 1 
1 1 0 0 
1 1 0 1 
1 1 1 0 
1 1 1 1

Related Article: Generate all the binary number from 0 to n



My Personal Notes arrow_drop_up

SDE 2 at Adobe || Ex - Paytm || NIT Allahabad

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.