Find LCM of two numbers
About Version 1: 

GCD(a, b) has a time complexity of \$ O(min(a, b))\$ and requires an
array for intermediate storage. You could get rid of the array by
iterating over the possible divisors in reverse order, so that you
can early return if a common divisor is found.

About Version 2:

LCM(x , y) has a time complexity of \$ O(xy)\$ and requires two
arrays for intermediate storage, so this worse than version 1.
You could improve this by pre-computing only the multiples of one number,
and then test the multiples of the other number (in reverse order)
until you find a common multiple, and then early return.

Common issues:


LCM should always return a number, your code returns the string
"0" in some cases.
Both functions take integer arguments (according to the docstring
) but do not produce sensible results for negative input.
The usage of whitespace in your code is inconsistent. Examples:

if x==0 or y == 0:
i =2

More PEP8 coding style
violations (most of them related to spacing) can be detected by checking
your code at PEP8 online.


A better algorithm

The "Euclidean Algorithm" is a well-known method for computing the greatest common
divisor, and superior to both of your approaches.

It is already available in the Python standard library:

&gt;&gt;&gt; from fractions import gcd   # Python 2
&gt;&gt;&gt; from math import gcd        # Python 3
&gt;&gt;&gt; gcd(123, 234)
3


This should be used as the basis for implementing an LCM
function.

Have a look at https://rosettacode.org/wiki/Greatest_common_divisor#Python,
if you want to implement the GCD yourself (for educational purposes),
for example

def gcd_iter(u, v):
    while v:
        u, v = v, u % v
    return abs(u)


This is short, simple, needs no additional space, and fast:
the time complexity is (roughly) \$ =O(\log(max(a, b))\$
(see for example What is the time complexity of Euclid's Algorithm).