Skip to content
Related Articles

Related Articles

Print all sublists of a list in Python

View Discussion
Improve Article
Save Article
Like Article
  • Difficulty Level : Basic
  • Last Updated : 23 Jun, 2022

Given a list, print all the sublists of a list.
 

Examples: 

Input  : list = [1, 2, 3] 
Output : [[], [1], [1, 2], [1, 2, 3], [2], 
         [2, 3], [3]]

Input : [1, 2, 3, 4] 
Output : [[], [1], [1, 2], [1, 2, 3], [1, 2, 3, 4], 
         [2], [2, 3], [2, 3, 4], [3], [3, 4], [4]]

 

Approach#1: 

The approach will be run two nested loops till the length of the given list. The outer loop i traverse from 0 to the length of the list and the inner loop goes from 0 to i. Need to add 1 to length because the range only goes from 0 to i-1. To get the subarray we can use slicing to get the subarray. 

Step 1: Run a loop till length+1 of the given list.
Step 2: Run another loop from 0 to i.
Step 3: Slice the subarray from j to i. 
Step 4: Append it to a another list to store it 
Step 5: Print it at the end

Below is the Python implementation of the above approach:

Python




# Python program to print all
# sublist from a given list
 
# function to generate all the sub lists
def sub_lists (l):
    lists = [[]]
    for i in range(len(l) + 1):
        for j in range(i):
            lists.append(l[j: i])
    return lists
 
# driver code
l1 = [1, 2, 3]
print(sub_lists(l1))

Output: 

[[], [1], [2], [1, 2], [3], [2, 3], [1, 2, 3]]

Approach#2: 

The approach will use for loop and combinations function. For loop is used to iterate till the length of list which is helpful for generating a sub-list of variable ith length. With each iteration combinations function generate the possible combination of list with ith length. 

Python3




# Python program to print all
# sublist from a given list
from itertools import combinations
 
# function to generate all the sub lists
def sub_lists (l):
    # initializing empty list
    comb = []
     
    #Iterating till lenght of list
    for i in range(len(l)+1):
        # Generating sub list
        comb += [list(j) for j in combinations([1, 2, 3], i)]
    # Returning list
    return comb
 
# driver code
#Initial list
l1 = [1, 2, 3]
 
#Print initial list
print("Initial list is : " + str(l1))
 
# Calling function to generate all sub lists
print("All sub list is : "+ str(sub_lists(l1)))

Output:

Initial list is : [1, 2, 3]
All sub list is : [[], [1], [2], [3], [1, 2], [1, 3], [2, 3], [1, 2, 3]]


My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!