title: Split square into small squares
body: <p>I have big square. And I would like to split this square into small squares. I need all possible combinations. I know that there are infinity count of combinations but I have one limitation. I have fixed size for smallest square.</p>
  
  <p>I can implement it using brute force. But it is too long.</p>
  
  <p>Is any preferable algorithm for this task?</p>
  
  <p>Thanks!</p>