Find an equation that uses all 9 digits (1-9) I used Python to write the following program: 

"""
A desired equation includes a 4-digit integer multiplied with a single-digit integer
to give another 4-digit integer and all 9 digits(1-9) are used in the equation.
"""

import random

found=False

while not found:
    full_range=range(1,10)

    four_digit_num=""
    multiple=""
    for i in range(4):
        four_digit_num+=str(full_range.pop(random.randint(1,len(full_range)-1)))

    single_digit_num=full_range.pop(random.randint(1,len(full_range)-1))

    for i in range(4):
        multiple+=str(full_range.pop(random.randint(1,len(full_range)-1)))

    if int(four_digit_num)*single_digit_num==int(multiple):
        found=True

#output the equation
print "The desired equation is:"
print four_digit_num+"*"+str(single_digit_num)+"="+multiple


Is there any better way to perform this task?
It is extremely inefficient to do this randomly; you could end up checking the same numbers again and again. For a more structured approach, you could use itertools.permutations:

from itertools import permutations

for nums in permutations("123456789"):
    a = int("".join(nums[:4]))
    b = int(nums[4])
    c = int("".join(nums[5:]))
    if a * b == c:
        print "{0} * {1} == {2}".format(a, b, c)
        break # optional - there's more than one answer!




Also, note that:

found=False
while not found:
    ...
    if int(four_digit_num)*single_digit_num==int(multiple):
        found=True


would be neater as:

while True:
    ...
    if int(four_digit_num) * single_digit_num == int(multiple):
        break