I'm still not sure I understand what you're trying to do, but I think it's something like this: You want to copy and paste the nose, instead of cut and paste, and you want the pasted copy to be doubled in the same peculiar way as your second example.
So, there will be a 10x10 nose in the middle of the face, plus a 20x20 washed-out nose to the bottom right.
First, to copy and paste, you just have to copy the pixels to the old and new positions, instead of only to the new position:
def copyAndPaste(picture):
height = getHeight(picture)
width = getWidth(picture)
newPicture = makeEmptyPicture(width+100, height+100)
for x in range(width):
for y in range(height):
pxl = getPixel(picture,x,y)
color = getColor(pxl)
if (x>48 and x<59) and (y>58 and y<71):
newPxl =getPixel(newPicture, x+100,y+100)
setColor(newPxl,color)
newPxl = getPixel(newPicture, x,y)
setColor(newPxl,color)
Now, to enlarge the newly-pasted copy, you just need to double the offset. In other words, the first pixel at 49,59 goes to 149,159, but the pixel at 50,60 goes to 151,161, and the pixel at 51,61 goes to 153,163, and so on.
So, what you want is to get the distance from 49,59, double it, add it back to 49,59, and then move it by 100,100:
if (x>48 and x<59) and (y>58 and y<71):
newPxl =getPixel(newPicture, (x-49)*2+49+100,(y-59)*2+59+100)
setColor(newPxl,color)