# Cmbinations in Array

**URL:** <https://discuss.rubyonrails.org/t/cmbinations-in-array/31495>\
**Category:** rubyonrails-talk\
**Created:** [July 7, 2008, 3:57am UTC](https://discuss.rubyonrails.org/t/cmbinations-in-array/31495 "2008-07-07T03:57:51Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![11175](https://avatars.discourse-cdn.com/v4/letter/1/8edcca/32.png) [@11175](https://discuss.rubyonrails.org/u/11175)\
**Post date:** [July 7, 2008, 3:57am UTC](https://discuss.rubyonrails.org/t/cmbinations-in-array/31495/1 "2008-07-07T03:57:51Z")

</div>

Hi, I want to find the combination of array elements

like for example a = [1,2,3,4] the combinations are [1,2,3,4] [1,3,4,2] [1,2,3] etc..

If anybody knows plz reply me

---

<div class="post-metadata">

**Author:** ![pepe1](https://avatars.discourse-cdn.com/v4/letter/p/dec6dc/32.png) [@pepe1](https://discuss.rubyonrails.org/u/pepe1)\
**Post date:** [July 7, 2008, 3:36pm UTC](https://discuss.rubyonrails.org/t/cmbinations-in-array/31495/2 "2008-07-07T15:36:13Z")

</div>

Do you want to know the number of possible combinations or the combinations themselves?

---

<div class="post-metadata">

**Author:** ![11175](https://avatars.discourse-cdn.com/v4/letter/1/8edcca/32.png) [@11175](https://discuss.rubyonrails.org/u/11175)\
**Post date:** [July 7, 2008, 4:27pm UTC](https://discuss.rubyonrails.org/t/cmbinations-in-array/31495/3 "2008-07-07T16:27:07Z")

</div>

Pragash Mr. wrote:

> Hi, I want to find the combination of array elements
> 
> like for example a = [1,2,3,4] the combinations are [1,2,3,4] [1,3,4,2] [1,2,3] etc..
> 
> If anybody knows plz reply me

Think this works,

def combinations(array) &nbsp;&nbsp;return if array == &nbsp;&nbsp;return [array,] if array.length == 1

&nbsp;&nbsp;# split [1,2,3] =\> [1], [2,3] &nbsp;&nbsp;left, right = array[0..0], array[1..-1] &nbsp;&nbsp;rtn =

&nbsp;&nbsp;combinations(right).each do |r\_array| &nbsp;&nbsp;&nbsp;&nbsp;rtn \<\< r\_array &nbsp;&nbsp;&nbsp;&nbsp;rtn \<\< left + r\_array &nbsp;&nbsp;end

&nbsp;&nbsp;return rtn end

> > combinations([1])

=\> [[1]]

> > combinations([1])

=\> [[1], ]

> > combinations([1,2])

=\> [[2], [1, 2], , [1]]

> > combinations([1,2,3])

=\> [[3], [1, 3], [2, 3], [1, 2, 3], , [1], [2], [1, 2]]

enjoy. [http://www.workingwithrails.com/person/12394-matthew-rudy-jacobs](http://www.workingwithrails.com/person/12394-matthew-rudy-jacobs)
