# Print all sublists of a list in Python

• 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, 2], [1, 2, 3], ,
[2, 3], ]

Input : [1, 2, 3, 4]
Output : [[], , [1, 2], [1, 2, 3], [1, 2, 3, 4],
, [2, 3], [2, 3, 4], , [3, 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], , [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], [1, 3], [2, 3], [1, 2, 3]]```

My Personal Notes arrow_drop_up