Python: Generate the combinations of n distinct objects taken from a list
Generate Combinations from List
Write a Python program to generate combinations of n distinct objects taken from the elements of a given list.
Visual Presentation:

Sample Solution:
Python Code:
# Define a function 'combination' that generates combinations of 'n' distinct objects from 'n_list'
def combination(n, n_list):
# Base case: If 'n' is less than or equal to 0, yield an empty list and return
if n <= 0:
yield []
return
# Iterate through the elements in 'n_list'
for i in range(len(n_list)):
# Take one element 'c_num' at a time starting from index 'i'
c_num = n_list[i:i+1]
# Recursively generate combinations of 'n-1' distinct objects from the remaining elements
for a_num in combination(n-1, n_list[i+1:]):
# Yield the current element 'c_num' combined with the combinations of 'n-1' elements 'a_num'
yield c_num + a_num
# Create a list 'n_list' containing integers
n_list = [1, 2, 3, 4, 5, 6, 7, 8, 9]
# Print a message indicating the original list
print("Original list:")
# Print the original list
print(n_list)
# Assign an integer 'n' with the value 2
n = 2
# Call the 'combination' function with 'n' and 'n_list' and store the generator in the 'result' variable
result = combination(n, n_list)
# Print a message indicating the combinations of 'n' distinct objects
print("\nCombinations of", n, "distinct objects:")
# Iterate through the generator and print each combination
for e in result:
print(e)
Sample Output:
Original list: [1, 2, 3, 4, 5, 6, 7, 8, 9] Combinations of 2 distinct objects: [1, 2] [1, 3] [1, 4] [1, 5] [1, 6] [1, 7] [1, 8] [1, 9] [2, 3] [2, 4] [2, 5] [2, 6] [2, 7] [2, 8] [2, 9] [3, 4] [3, 5] [3, 6] [3, 7] [3, 8] [3, 9] [4, 5] [4, 6] [4, 7] [4, 8] [4, 9] [5, 6] [5, 7] [5, 8] [5, 9] [6, 7] [6, 8] [6, 9] [7, 8] [7, 9] [8, 9]
Flowchart:

For more Practice: Solve these Related Problems:
- Write a Python program to generate all possible unique combinations from a given list.
- Write a Python program to generate combinations of size n from a list.
- Write a Python program to generate ordered and unordered combinations from a list.
- Write a Python program to create unique subsets from a given list.
Go to:
Previous: Write a Python program to extract a given number of randomly selected elements from a given list.
Next: Write a Python program to round every number of a given list of numbers and print the total sum multiplied by the length of the list.
Python Code Editor:
What is the difficulty level of this exercise?
Test your Programming skills with w3resource's quiz.