title: Printing numbers in a diamond shape
body: <p>I came across this problem: <a href="http://codegolf.com/numeric-diamonds" rel="nofollow">http://codegolf.com/numeric-diamonds</a> which requires you to print numbers in this format:</p>
  
  <pre><code>  1
   4 2
  7 5 3
   8 6
    9
             1
           7   2
        13   8   3
      19  14   9   4
    25  20  15  10   5
  31  26  21  16  11   6
    32  27  22  17  12
      33  28  23  18
        34  29  24
          35  30
            36
                               1
                           11     2
                        21    12     3
                     31    22    13     4
                  41    32    23    14     5
               51    42    33    24    15     6
            61    52    43    34    25    16     7
         71    62    53    44    35    26    17     8
      81    72    63    54    45    36    27    18     9
   91    82    73    64    55    46    37    28    19    10
      92    83    74    65    56    47    38    29    20
         93    84    75    66    57    48    39    30
            94    85    76    67    58    49    40
               95    86    77    68    59    50
                  96    87    78    69    60
                     97    88    79    70
                        98    89    80
                           99    90
                             100
  </code></pre>
  
  <p>I was able to find the numbers that go into a particular row just fine, but my logic for arranging them is quite obscure.</p>
  
  <pre><code>for i in range(2*n - 1):
      m = &lt;list of numbers for this row&gt;
      row_width = (n+i)*(n/3) if i &lt; n else row_width - (n/3)
  
      print ''.join(str(i).rjust(n/2 + 1) for i in m).strip().rjust(row_width))
  </code></pre>
  
  <p>That's ok from a code golf perspective, but is there a clean, pythonic way to arrange numbers from a 2D array in this format?</p>