w3resource

Python: Generate the combinations of n distinct objects taken from a list

Python List: Exercise - 82 with Solution

Write a Python program to generate combinations of n distinct objects taken from the elements of a given list.

Sample Solution:

Python Code:

def combination(n, n_list):
    if n<=0:
        yield []
        return
    for i in range(len(n_list)):
        c_num = n_list[i:i+1]
        for a_num in combination(n-1, n_list[i+1:]):
            yield c_num + a_num
n_list = [1,2,3,4,5,6,7,8,9]
print("Original list:") 
print(n_list)
n = 2
result = combination(n, n_list)
print("\nCombinations of",n,"distinct objects:")
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]

Pictorial Presentation:

Python List: Generate the combinations of n distinct objects taken from a list.

Flowchart:

Flowchart: Generate the combinations of n distinct objects taken from a list.

Visualize Python code execution:

The following tool visualize what the computer is doing step-by-step as it executes the said program:


Python Code Editor:

Have another way to solve this solution? Contribute your code (and comments) through Disqus.

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.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Follow us on Facebook and Twitter for latest update.

Python: Tips of the Day

Capitalizes the first letter of a string:

Example:

def tips_capitalize(s, lower_rest=False):
  return s[:1].upper() + (s[1:].lower() if lower_rest else s[1:])
print(tips_capitalize('pythonTips'))
print(tips_capitalize('pythonTips', True))

Output:

PythonTips
Pythontips

 





We are closing our Disqus commenting system for some maintenanace issues. You may write to us at reach[at]yahoo[dot]com or visit us at Facebook