I found an interesting problem on https://www.codewars.com/kata/559379505c859be5a9000034:
< PREVIOUS KATA
NEXT KATA >

## Task:

You have to write a function `pattern` which returns the following Pattern(See Examples) upto desired number of rows. 

* Note:`Returning` the pattern is not the same as `Printing` the pattern.

## Parameters:
    
    pattern(        n        ,        y        );
                    ^                 ^         
                    |                 |         
             Term upto which   Number of times  
              Basic Pattern     Basic Pattern   
                should be         should be     
                 created          repeated      
                                 vertically    
    
* Note: `Basic Pattern` means what we created in Complete The Pattern #12 i.e. a `simple X`.

## Rules/Note:

* The pattern should be created using only unit digits.
* If `n < 1` then it should return "" i.e. empty string.
* If `y <= 1` then the basic pattern should not be repeated vertically.
* `The length of each line is same`, and is equal to the length of longest line in the pattern.
* Range of Parameters (for the sake of CW Compiler) :
  + `n ∈ (-∞,50]`
  + `y ∈ (-∞,25]`
* If only one argument is passed then the function `pattern` should run as if `y <= 1`.
* The function `pattern` should work when extra arguments are passed, by ignoring the extra arguments.
   
   
## Examples:

#### Having Two Arguments:

##### pattern(4,3):

        1     1
         2   2 
          3 3  
           4   
          3 3  
         2   2 
        1     1
         2   2 
          3 3  
           4   
          3 3  
         2   2 
        1     1
         2   2 
          3 3  
           4   
          3 3  
         2   2 
        1     1
       
##### pattern(10,2):

        1                 1
         2               2 
          3             3  
           4           4   
            5         5    
             6       6     
              7     7      
               8   8       
                9 9        
                 0         
                9 9        
        ...

I tried it in Python, but could not do it. Can you solve it?
def pattern(n, y=1, *_):
    if n < 1:
        return ''
    ans, p, y = [], [], max(y, 1)
    for i in range(1, n+1):
        t = [' '] * (n * 2 - 1)
        t[i - 1] = t[n * 2 - 1 - 1 - i + 1] = str(i % 10)
        p.append(''.join(t))
    p += p[:-1][::-1]
    for _ in range(y):
        ans += p[1:] if ans else p
    return '\n'.join(ans)