# python program to print all subset combination of n element in given set of r element .
#arr[]  ---> Input Array
#data[] ---> Temporary array to store current combination
# start & end ---> Staring and Ending indexes in arr[]
# index  ---> Current index in data[]
#r ---> Size of a combination to be printed 
def combinationUtil(arr,n,r,index,data,i):
#Current combination is ready to be printed,
# print it
 if(index == r):
  for j in range(r):
   print(data[j],end =" ")
  print(" ")
  return
#  When no more elements are there to put in data[]
 if(i >= n):
  return
#current is included, put next at next
# location 
 data[index] = arr[i]
 combinationUtil(arr,n,r,index+1,data,i+1)
 # current is excluded, replace it with
 # next (Note that i+1 is passed, but
 # index is not changed)
 combinationUtil(arr,n,r,index,data,i+1)
 # The main function that prints all combinations
 #of size r in arr[] of size n. This function 
 #mainly uses combinationUtil()
def printcombination(arr,n,r):
# A temporary array to store all combination
# one by one
 data = [0]*r
#Print all combination using temprary
#array 'data[]'
 combinationUtil(arr,n,r,0,data,0)
# Driver function to check for above function
arr = [10,20,30,40,50]
printcombination(arr,len(arr),3)
#This code is contributed by Ambuj sahu