Direct Product
Perhaps the simplest way to combine (multiply) two sets (and therefore groups) is to use the Cartesian product as explained on this page. This product produces a set from the product:
g×h = {g, h}
So the result of this product is a different type of entity than the elements being multiplied, so the multiplication is not closed, and therefore does not represent a group. The external product makes this into a group because the inputs to the multiplication are also sets:
{y,z}{y',z' } = {y(z • y'),z^{y'} z'}
where:
 × is the operation of the combined algebra.
 * is the operation of the group G.
 o is the operation of the group H which may be, or may not be, the same as *.
Example C_{2}×C_{3}
In order to try to understand this product of two groups lets try multiplying two very simple groups together, the simplest groups I can think of are C_{2} and C_{3}.
C_{2}
generator  cayley graph  table  permutation  representation  

<m  m²> 

< ( 1 2 ) > 

C_{3}
generator  cayley graph  table  permutation  representation  

<r  r³> 

< ( 1 2 3 ) > 

direct product C_{3} × C_{2}
This gives _{}:
generator  cayley graph  table  

<m,r  m²,r³,rm=mr> 


permutation  representation  
<(1 2 3)(4 5 6),(1 4)(2 5)(3 6)> 

Note that, in addition to applying both the generators and constrains for the original groups we have had to apply an additional constraint: rm=mr. If we had not done this we would have the infinite free product.
Generating a Bicrossed Product using a Program
We can use a computer program to generate these groups, here I have used Axiom/FriCAS which is described here.